Laravel在视图中未定义变量

时间:2017-01-21 00:31:32

标签: php laravel laravel-5.3

我是laravel的新手。使用5.3版本并尝试搜索,但没有看到我做错了什么。我在视图中不断收到“Undefined variable:user”。我也在做表单模型绑定。手动输入URL时,模型绑定正常工作。只是无法点击链接来调出编辑视图。

我的路线:

Route::get('/profile/edit/{id}', 'ProfileController@getEdit');
Route::post('/profile/edit/{id}', 'ProfileController@postEdit');

我的控制器:

public function getEdit($id){

    $user= User::findOrFail($id);
    return view('profile.edit', compact('user'));
}

我的观点:

<li><a href="{{ url('/profile/edit', $user->id ) }}">Update profile</a></li>

我的表格:

{!! Form::model($user,['method' => 'POST', 'action'=>        ['ProfileController@postEdit', $user->id]]) !!}

4 个答案:

答案 0 :(得分:1)

public function getEdit($id){

    $user= User::findOrFail($id);
    return view('profile.edit', ['user' => $user]);
}

public function postEdit($id){

    $user= User::findOrFail($id);
    return view('profile.edit', ['user' => $user]);
}

答案 1 :(得分:0)

在我看来,你认为的陈述

<li><a href="{{ url('/profile/edit', $user->id ) }}">Update profile</a></li>

造成了这个问题。您可以在点击更新个人资料链接后查看地址栏中的网址来确认这一点。

尝试将其更改为此

<li><a href="{{ action('ProfileController@getEdit', $user->id ) }}">Update profile</a></li>

答案 2 :(得分:0)

尝试在视图中传递数据数组

public function getEdit($id){
    $data['user'] = User::findOrFail($id);
    return view('profile.edit')->withdata($data);
}
在视图页面中

尝试打印$ data

{{ print_r($data) }}

答案 3 :(得分:0)

请编辑你的getEdit方法

public function getEdit($id){
    $user= User::findOrFail($id);
    dd($user);
    return view('profile.edit', compact('user'));
}

检查是否有任何数据用户变量。