laravel (5.6) 中的隐式绑定返回一个空对象
The implicit binding in laravel (5.6) returt a empty object
我正在尝试在控制器中使用方法 'show' 但是当它 return 是一个空对象时。
因为这个观点:
@foreach ($usuarios as $usuario2)
<h2>{{$usuario2->nombre}}</h2>
<a href="prurequests/{{$usuario2->id}}">ver mas2...</a>
@endforeach
通过这条路线:
Route::resource('/prurequests','PruebasControllers\PrurequestsController');
到这个控制器的方法:
public function show(Usuario2 $usuario2) // Ruta con implicing biding
{
return $usuario2;
}
这是型号:
class Usuario2 extends Model
{
Protected $fillable = ['nombre'];
}
我试过这个并且有效
查看:
@foreach ($usuarios as $usuario2)
<h2>{{$usuario2->nombre}}</h2>
<a href="impli/{{$usuario2->id}}">ver mas...</a>
<a href="prurequests/{{$usuario2->id}}">ver mas2...</a>
@endforeach
路线
Route::get('impli/{usuario2}', function
(fractalwebpage\PruebasModelos\Usuario2 $usuario2) {
return $usuario2;
});
它给我带来了数据,但我不得不将模型的名称放在路线中并且。
我们需要通过控制器来完成。
当您尝试在资源控制器中进行隐式绑定时,您必须在创建资源控制器时添加一个 --model
选项
php artisan make:controller PrurequestsController --resource --model=Usuario2
Specifying The Resource Model If you are using route model binding and
would like the resource controller's methods to type-hint a model
instance, you may use the --model option when generating the
controller:
查看详情https://laravel.com/docs/5.6/controllers#resource-controllers
默认情况下,Laravel 使用 url 的最后一段作为资源路由请求的占位符,因此在您的控制器方法中您可以注入您的模型,但使用不同的名称public function show(Usuario2 $prurequests)
但更明确的解决方案是仅更改路由定义中的参数
Route::resource('/prurequests','PruebasControllers\PrurequestsController', ['parameters' => ['prurequests' => 'usuario2']]);
通过这种方式,您可以继续按当前方式使用控制器
public function show(Usuario2 $usuario2) // Ruta con implicing biding
{
return $usuario2;
}
我正在尝试在控制器中使用方法 'show' 但是当它 return 是一个空对象时。
因为这个观点:
@foreach ($usuarios as $usuario2)
<h2>{{$usuario2->nombre}}</h2>
<a href="prurequests/{{$usuario2->id}}">ver mas2...</a>
@endforeach
通过这条路线:
Route::resource('/prurequests','PruebasControllers\PrurequestsController');
到这个控制器的方法:
public function show(Usuario2 $usuario2) // Ruta con implicing biding
{
return $usuario2;
}
这是型号:
class Usuario2 extends Model
{
Protected $fillable = ['nombre'];
}
我试过这个并且有效
查看:
@foreach ($usuarios as $usuario2)
<h2>{{$usuario2->nombre}}</h2>
<a href="impli/{{$usuario2->id}}">ver mas...</a>
<a href="prurequests/{{$usuario2->id}}">ver mas2...</a>
@endforeach
路线
Route::get('impli/{usuario2}', function
(fractalwebpage\PruebasModelos\Usuario2 $usuario2) {
return $usuario2;
});
它给我带来了数据,但我不得不将模型的名称放在路线中并且。 我们需要通过控制器来完成。
当您尝试在资源控制器中进行隐式绑定时,您必须在创建资源控制器时添加一个 --model
选项
php artisan make:controller PrurequestsController --resource --model=Usuario2
Specifying The Resource Model If you are using route model binding and would like the resource controller's methods to type-hint a model instance, you may use the --model option when generating the controller:
查看详情https://laravel.com/docs/5.6/controllers#resource-controllers
默认情况下,Laravel 使用 url 的最后一段作为资源路由请求的占位符,因此在您的控制器方法中您可以注入您的模型,但使用不同的名称public function show(Usuario2 $prurequests)
但更明确的解决方案是仅更改路由定义中的参数
Route::resource('/prurequests','PruebasControllers\PrurequestsController', ['parameters' => ['prurequests' => 'usuario2']]);
通过这种方式,您可以继续按当前方式使用控制器
public function show(Usuario2 $usuario2) // Ruta con implicing biding
{
return $usuario2;
}