【问题标题】:Laravel 7, Missing required parameters for [Route: /xxxxx] errorLaravel 7,缺少 [Route: /xxxxx] 错误所需的参数
【发布时间】:2020-06-26 19:38:34
【问题描述】:

我正在尝试将值从视图传递到控制器并在查询中使用该值。我收到缺少参数错误。这是我的代码。 查看:

<a href="{{ action('/first_letter', ['f_letter'=>'A']) }}">A</a>

路线:

Route::get('/first_letter/{$f_letter}','PtoductController@first_letter')
    ->name('first_letter');

控制器:

public function index()
{  
    $products = DB::table('products')
            ->join('families', 'products.id_family', '=', 'families.id')
            ->select('products.name')
            ->where('products.name', 'like', $f_letter.'%')
            ->get();

     return view('product.index', compact('products'));
}

【问题讨论】:

  • 更新你的路线到这个Route::get('/first_letter/{f_letter}','PtoductController@first_letter')-&gt;name('first_letter')
  • 为什么是 {$f_letter}?在路由定义中尝试 {f_letter}

标签: php laravel routes laravel-7


【解决方案1】:

你有两个问题

首先,把你的路线改成这样

Route::get('/first_letter/{f_letter}','PtoductController@first_letter')
    ->name('first_letter');

当您在路由中传递wildcard 时,它会这样写{f_letter} 而不是{$f_letter}

第二,在您的控制器中,您需要像这样将方法中的wildcard 传递为parameter

public function index($f_letter)
{  
    $products=DB::table('products')
            ->join('families', 'products.id_family', '=', 'families.id')
            ->select('products.name')
            ->where('products.name', 'like', $f_letter.'%')
            ->get();

     return view('product.index', compact('products'));
}

您可以在此处阅读有关路由 parameters 的更多信息

最后你可以像这样让你的a标签更清晰

<a href="{{ route('first_letter', 'A') }}">A</a>

【讨论】:

  • 作为观察:如果不想在函数中注入参数,也可以从请求对象中获取:$letter = request('f_letter');
  • 是的,这是另一种方式,但以防他使用表格
【解决方案2】:

首先,您确定控制器名称是“PtoductController”吗?不应该叫ProductController吗?

那么,如果控制器名称正确,请从您从控制器调用的链接中删除“$”。

Route::get('/first_letter/{f_letter}', ['uses' => 'PtoductController@first_letter'])
    ->name('first_letter');

最后,将$f_letter作为参数放入“first_letter”函数中。

public function index($f_letter)
{
   //your code
}

【讨论】:

    猜你喜欢
    • 2021-11-15
    • 1970-01-01
    • 2021-11-03
    • 2021-08-17
    • 2019-05-28
    • 2022-11-04
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    相关资源
    最近更新 更多