在访问数据库时尝试获取非对象laravel的属性

时间:2017-11-25 05:05:53

标签: php sql laravel

我正在尝试编写laravel的编辑路径,并且出于某种原因不断收到错误"尝试获取非对象laravel的属性"。 Create控制器工作正常,但是当我使用controller @ update route时,我不断收到此错误

我的控制器用于添加事件:(更新)

public function update(Request $request, $id)
    {
         //create event
         $my_user = my::find($id);
         $my_user->programme = $request->input('programme');
         $my_user->goal1 = $request->input('goal1');
         $my_user->goal2 = $request->input('goal2');
         $my_user->goal3 = $request->input('goal3');
         $my_user->goal4 = $request->input('goal4');
         $my_user->goal5 = $request->input('goal5');
         $my_user->user_id = auth()->user()->id;

         $my_user->save();

         return redirect('/home')->with('success','Event Created');
    }

编辑页面

@extends('layouts.app')

@section('content')
<div class="container">
    <h1>Edit Post</h1>
    {!! Form::open(['action' => ['myUserController@update', $my_user], 'method' => 'POST']) !!}
        <div class="form-group">
            {{Form::label('title', 'Event Name')}}
            {{Form::text('goal1', $my_user->goal1, ['class' => 'form-control', 'placeholder' => 'Goal One'])}}

        </div>
        {{Form::hidden('_method','PUT')}}
        {{Form::submit('Submit', ['class'=>'btn btn-primary'])}}
    {!! Form::close() !!}

</div>
@endsection

2 个答案:

答案 0 :(得分:0)

鉴于您正在使用Route :: resource,您可以通过编写类似

的内容来键入提示您的参数
public function update(Request $request, MyUser $myuser){
    // The $myuser parameter comes from the Route::resource and can be verified using php artisan route:list in your terminal

    // edit $my_user
    $my_user->save();

    return redirect('/home')->with('success','Event Created');
}

在审核了表单

的LaravelCollective文档后进行了更新

感谢您Sohel0415提及您不需要调用$ my_user-&gt; id来提供带有表单外观的路由参数。

答案 1 :(得分:0)

您可以在代码中使用此方法:

{{ Form::open(array('url'=>'admin/users/store' , 'method' =>'POST')) }}

并且您的路由在web.php文件中通过此方法定义:

Route::post('users/store', 'admin\UserController@store');