-1

我正在尝试在控制器中使用“显示”方法,但是当它返回一个空对象时。

由于这种观点:

@foreach ($usuarios as $usuario2)
  <h2>{{$usuario2->nombre}}</h2>
  <a href="prurequests/{{$usuario2->id}}">ver mas2...</a>
@endforeach

通过tis路线:

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;
});

它给我带来了数据,我不得不将模型的 nae 放入路径中。e 需要这样做,但要通过控制器。

4

2 回答 2

1

默认情况下,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;
}
于 2018-08-21T18:20:13.043 回答
0

当您尝试在资源控制器中进行隐式绑定时,在创建资源控制器时您必须添加一个--model选项

php artisan make:controller PrurequestsController --resource --model=Usuario2

指定资源模型如果您使用路由模型绑定并且希望资源控制器的方法对模型实例进行类型提示,您可以在生成控制器时使用 --model 选项:

查看详细信息https://laravel.com/docs/5.6/controllers#resource-controllers

于 2018-08-21T04:35:37.137 回答