【问题标题】:Illegal string offset 'name' laravel php非法字符串偏移“名称”laravel php
【发布时间】:2018-04-18 22:55:35
【问题描述】:

这是我的注册页面视图和控制器。我正在使用 laravel 框架。我已经检查过了,由于密码字段而出现错误。我在没有密码字段的情况下编译它并且它有效。我无法理解其中有什么问题。我从 laravel 集体表单页面复制了它。

查看:

{!! Form::open(['url' => 'signup/submit']) !!}
        <div class="form-group">
            {{Form::label('name', 'Name')}}
            {{Form::text('name', '', ['class' => 'form-control', 'placeholder' => 'Full Name'])}}
        </div>
        <div class="form-group">
            {{Form::label('username', 'Username')}}
            {{Form::text('username', '', ['class' => 'form-control', 'placeholder' => 'Username'])}}
        </div>
        <div class="form-group">
            {{Form::label('email', 'E-Mail Address')}}
            {{Form::email('email', '', ['class' => 'form-control', 'placeholder' => 'Your email..'])}}
        </div>
        <div class="form-group">
            {{Form::label('password', 'Password')}}
            {{Form::password('password', '123', ['class' => 'form-control', 'placeholder' => 'Password...'])}}
        </div>
        <div>
            {{Form::submit('Submit', ['class' => 'btn btn-primary'])}}
        </div>
    {!! Form::close() !!}

控制器:

public function submit(Request $request)
    {
        $this->validate($request, [
            'name' => 'required',
            'username' => 'username',
            'email' => 'email',
            'password' => 'password'
        ]);

        //Getting the info and creating new message.
        $message = new Message;
        $message->name = $request->input('name');
        $message->username = $request->input('username');
        $message->message = $request->input('email');
        $message->message = $request->input('password');

        $message->save();

        //redirecting
        return redirect('/')->with('success', 'Registeration successful');
    }

如果有人能理解这个问题?

这是错误屏幕截图: Error screenshot

【问题讨论】:

  • 你能给我们完整的错误信息,包括它说错误所在的文件和行吗?
  • 你使用的是哪个版本的 Laravel?
  • 请在您的 .env 文件上启用调试(如果尚未启用)。重新运行您的代码,将 storage/logs/laravel.log 的内容复制并粘贴到您的 Stackoverflow 问题中。调试数据越多越好。
  • 以良好的方式验证
  • 我使用的是 laravel 5.4

标签: laravel


【解决方案1】:

好的,我找到了,因为密码字段没有显示值。

改变这个

{{Form::password('password', '123', ['class' => 'form-control', 'placeholder' => 'Password...'])}}

到这里

{{Form::password('password', ['class' => 'form-control', 'placeholder' => 'Password...'])}}

来自https://laravel.io/forum/08-12-2014-illegal-string-offset-name-when-validating-against-unique

【讨论】:

    【解决方案2】:

    你保存两次 ->在这里留言

     $message->message = $request->input('email');
     $message->message = $request->input('password');
    

    所以你需要更改密码输入保存的字段,如:

     $message->message = $request->input('email');
     $message->password= $request->input('password');
    

    【讨论】:

    • 是的,这是另一个错误,没有错误屏幕,我无法理解所有内容
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    相关资源
    最近更新 更多