繁体   English   中英

Laravel将数据从视图传递到控制器

[英]Laravel Passing Data from View to Controller

我正在使用Laravel 5.3。 我试图将一些输入从视图传递到控制器。 这是我现在在视图中正在做的事情:

<form class="form-horizontal" role="form" method="POST" action="{{ url('/update/company') }}">
   {{ csrf_field() }}
    <input name="_method" type="hidden" value="PUT">
    <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
         <label for="name" class="col-md-4 control-label">Name</label>
         <div class="col-md-6">
             <input id="name" type="text" class="form-control" name="name" value="{{ old('name') }}" required autofocus>

             @if ($errors->has('name'))
             <span class="help-block">
                 <strong>{{ $errors->first('name') }}</strong>
             </span>
             @endif
        </div>
    </div>
    <div class="form-group">
          <div class="col-md-6 col-md-offset-4">
                <button type="submit" class="btn btn-primary">
                    Register
                </button>
          </div>
    </div>
</form>

这是路线:

Route::put('/update/company', [
'as' => 'updateCompany',
'uses' => 'Auth\RegisterController@update'
]);

这是控制器:

public function update(Request $request){
    $compEmail = $this->companyEmail;
    if( ! $compEmail)
    {
        echo "Email Invalid";
    }

    $user = User::all()->where("email", $compEmail)->first();

    if ( ! $user)
    {
        echo "Invalid Company";
    }

    $user->name = $request->input('name');
    $user->confirmed = 1;
    $user->confirmation_code = null;

    $user->save();

}

这给了我错误:

从$ user-> name = $ request-> input('name');行上的空值创建默认对象。

有小费吗?

如果您找不到任何$user

if ( ! $user) {
    echo "Invalid Company";
}

您没有返回该方法,因此在这里:

$user->name = $request->input('name');
$user->confirmed = 1;
$user->confirmation_code = null;

您尝试从$user empty var访问null值字段。

您应该在此处添加return

if ( ! $user) {
    echo "Invalid Company";
    return;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM