“类型错误:函数App \ Http \ Controllers \ FrontController :: detail()的参数太少,0通过,正好是1个预期”

时间:2017-12-26 02:23:05

标签: php mysql laravel-5 laravel-5.5

我想将衬衫数据传递给细节,以了解衬衫产品的细节。怎么做?我在这里有一些错误 Error's Message

这是我的网络视图 web View

FrontController.php

 class FrontController extends Controller
{
  public function index()
  {
    $shirts=Product::all();
    return view('front.home', compact('shirts'));
  }
  public function shirts()
  {
    $shirts=Product::all();
    return view('front.shirts', compact('shirts'));
  }
  public function detail($id)
  {
      return view('front.shirt', ['detail' => Product::findOrFail($id)]);

  }

路线 Web.php

Route::get('/', 'FrontController@index')->name('home');
Route::get('/shirts', 'FrontController@shirts')->name('shirts');
Route::get('/detail', 'FrontController@detail')->name('detail');

Shirts.blade.php

<a href="{{route('detail', $shirt->id)}}">

3 个答案:

答案 0 :(得分:2)

你错过路线中的参数('详细') 编辑为:

Route::get('/detail/{id}', 'FrontController@detail')->name('detail');

再试一次。希望得到这个帮助:D

答案 1 :(得分:0)

首先需要改变两件事是路径文件 它应该是这样的

Route::get('/detail/{$id}', 'FrontController@detail')->name('detail');

从中你得到你在控制器中传递的参数$ id。

并且根据我在您的代码中看到的视图,您的路线是

<a href="{{route('detail', $detail->id)}}"> 

必须像这样

<a href="{{route('detail', $shirt->id)}}">

我认为它可能会解决您的问题 希望它会帮助你

答案 2 :(得分:-1)

我认为在您的路线中您还需要提供Id参数,

Route::get('/detail/{id}', 'FrontController@detail')->name('detail');