Primary Key 与 laravel 搜索的默认 id 不同
Primary Key is different from the default id that laravel searches for
我在 table 中添加了一个自定义主键,现在 Laravel 根本找不到结果。给出找不到页面的错误。
NotFoundHttpException
没有模型 [App\usersinformation] 的查询结果。
控制器--------------------
public function show(usersinformation $usersinformation)
{
//
// $users = $user = usersinformation::where('user-id','=',$usersinformation) -> first();
return view('usersinformation.show');
}
型号--------------------
class usersinformation extends Model
{
//
public $table = "usersinformation";
public $incrementing = false;
protected $fillable = [
'fname','lname', 'user-picture', 'phone-number', 'user-id', 'place-id'
];
protected $primaryKey = 'user-info-id';
public function users(){
$this -> belongsTo('App\users');
}
路线----web.php
Route::post('/show','App\Http\Controllers\usersinformationController@show');
仍然面临同样的问题,如果我注释主键,当我在模型中添加自定义主键时,它会给出错误,即在 table 中找不到 id 字段,它会给出找不到错误页面。
您正在键入提示 usersinformation $usersinformation
,因此它试图找到您传入的 ID 的记录。在下一行中,您试图将 ID 传递到用户 ID,所以我猜你实际上是将用户标识传递给路由,而不是用户信息行的标识。如果是这种情况,那么您需要更改类型提示,这样它就不会在进入函数之前尝试查找记录。
public function show($user_id)
{
$user_information = usersinformation::where('user-id','=',$user_id) -> first();
return view('usersinformation.show', ['userinformation' => $user_information]);
}
您的 primaryKey 行很好并且应该可以工作,但要知道 table 和列名中的破折号是强烈反对的,因为它会导致各种混乱。下划线要好得多。有关详细信息,请参阅 this link。
我在 table 中添加了一个自定义主键,现在 Laravel 根本找不到结果。给出找不到页面的错误。
NotFoundHttpException
没有模型 [App\usersinformation] 的查询结果。
控制器--------------------
public function show(usersinformation $usersinformation)
{
//
// $users = $user = usersinformation::where('user-id','=',$usersinformation) -> first();
return view('usersinformation.show');
}
型号--------------------
class usersinformation extends Model
{
//
public $table = "usersinformation";
public $incrementing = false;
protected $fillable = [
'fname','lname', 'user-picture', 'phone-number', 'user-id', 'place-id'
];
protected $primaryKey = 'user-info-id';
public function users(){
$this -> belongsTo('App\users');
}
路线----web.php
Route::post('/show','App\Http\Controllers\usersinformationController@show');
仍然面临同样的问题,如果我注释主键,当我在模型中添加自定义主键时,它会给出错误,即在 table 中找不到 id 字段,它会给出找不到错误页面。
您正在键入提示 usersinformation $usersinformation
,因此它试图找到您传入的 ID 的记录。在下一行中,您试图将 ID 传递到用户 ID,所以我猜你实际上是将用户标识传递给路由,而不是用户信息行的标识。如果是这种情况,那么您需要更改类型提示,这样它就不会在进入函数之前尝试查找记录。
public function show($user_id)
{
$user_information = usersinformation::where('user-id','=',$user_id) -> first();
return view('usersinformation.show', ['userinformation' => $user_information]);
}
您的 primaryKey 行很好并且应该可以工作,但要知道 table 和列名中的破折号是强烈反对的,因为它会导致各种混乱。下划线要好得多。有关详细信息,请参阅 this link。