【问题标题】:Missing required parameters for [Route: listele] [URI: {language}/{slug}][Route: listele] [URI: {language}/{slug}] 缺少必需的参数
【发布时间】:2021-07-12 19:10:51
【问题描述】:

缺少 [Route: listele] [URI: {language}/{slug}] [缺少参数:语言,slug] 的必需参数。 (查看:C:\xampp\htdocs\efsane\resources\views\product\product.blade.php)

我收到此类错误的原因是什么?

刀片文件

@foreach ($categories as $p)
    <a href="{{route('listele') , app()->getLocale(), $slug }}"class="list-group-item">{{$p->name}}</a>
@endforeach

路线

 Route::group(['prefix' => '{language}'  ], function(){  

 Route::get('/{slug}' , 'App\Http\Controllers\ProductController@category')->name('listele');


 });

我的控制器

      public function category($slug)


     {
  

     $category = Category::where('slug' , $slug )->first();
     $data['category'] = $category;

     $data['categories'] = Category::inRandomOrder()->get();


     $data['posts'] = Post::where('category_id' , $category->id)->orderBy('id',  'DESC')->paginate(10);
     return view('product.kategorilist' , $data );
     }

【问题讨论】:

    标签: laravel


    【解决方案1】:

    您需要将路由参数值放入一个数组中,并将该数组放入您的路由方法route('listele', [app()-&gt;getLocale(), $p-&gt;slug])
    您还需要从对象访问类别 slug,因此您必须使用 $p-&gt;slug

    @foreach ($categories as $p)
     <a href="{{route('listele', [app()->getLocale(), $p->slug])}}"
    class="list-group-item">{{$p->name}}</a>
    @endforeach
    

    --编辑

    还缺少 &lt;/a&gt; 结束标签

    --EDIT2

    您的控制器方法只定义了$slug 参数。但是您在路由中为 $language 参数定义前缀,并且路由本身定义了 $slug 参数。

    您必须简单地将另一个名为 $language 的参数添加到您的控制器方法中。

          public function category($language, $slug) { .... }
    

    在您的情况下,语言值已分配给 slug 变量,因此未找到类别(设置为 null)。如果你想访问一个空对象的属性,你就有问题了。

    我会添加一个检查以确保 $category 不为空。

    public function category($language, $slug) {
    
    $category = Category::where('slug' , $slug )->first(); 
      if(is_null($category)){
        return redirect()->back();
      }
     ....
     }
    

    【讨论】:

    • 很高兴它成功了!如果您能尽快将我的答案标记为正确答案,我将不胜感激:) 玩得开心@MahmutSarıkaya
    • 检查我的新答案 :) @MahmutSarıkaya
    猜你喜欢
    • 2023-04-03
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 2022-01-16
    • 2021-03-10
    • 2020-08-17
    • 2023-03-23
    相关资源
    最近更新 更多