【发布时间】:2016-10-03 10:59:10
【问题描述】:
我正在尝试通过用户名获取用户并返回他的个人资料页面。
路由是这样定义的:
Route::get('user/{slug}', 'UserController@getUserByName');
在我的UserController 中,我已经像这样定义了getUserByName
public function getUserByName($slug)
{
$user_id = User::where('username', $slug)->first()->id;
return view('users.user', compact('user_id'));
}
但是我收到一个错误No query results for model [App\User]
我已经尝试了this answer 中建议的几乎所有解决方案,但所有答案仍然出现相同的错误。
Users 表的架构定义如下:
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('username');
$table->string('email')->unique();
$table->string('password', 60);
$table->rememberToken();
$table->timestamps();
});
定义查询的正确方法应该是什么?
我正在使用 phpMysql
编辑:
users.user刀片模板定义如下:
@extends('layouts.users')
@section('title'){{$user->username}} profile @stop
@section('container')
@include('users._rightnav')
<div class="alert alert-info text-center clearfix">
User details
</div>
<ul class="list-group">
Username: {{$user->username}}
Email: {{$user->email}}
</div>
@stop
【问题讨论】:
-
你能告诉我们你的刀片视图代码吗?
-
您确定您有该用户名的用户吗?转储 $slug 以查看它是否实际上已正确传递。
-
你需要传递 $user 而不是 $user_id
标签: php laravel laravel-5.2