我们如何在laravel中传递乘法id

时间:2016-01-03 08:31:21

标签: php laravel-5.1

我的view.blade.php代码

 <a href="{{ url('p_grid') }}/{{($cat_id)}}/{{$row->sub_id}}">

我的路线代码

Route::resource('p_grid', 'BasicController@p_grid');

我的BasicController代码在这里

public function p_grid(Request $request, $id)
{   
    echo "success";
    if ($id == 1) {
        $r = DB::table('sub_category')
        ->select('*')
        ->where('cat_id', $id)
        ->where('sub_status', '1')
        ->orderBy('sub_id', 'asc')
        ->get();

        $cat_name = DB::table('category')
        ->where('cat_id', $id)
        ->get();

        $count = DB::table('products')
        ->where('sub_id', $id)
        ->count();
       return view('buy-and-sell/p_grid', compact('r','cat_name','count','id'));
    }

点击锚标记以显示此错误

image upload for help

2 个答案:

答案 0 :(得分:0)

您网址中的额外参数会导致404.Laravel不希望该网址有多个ID,因为您使用的是资源丰富的路由。您需要附加routes.php文件才能解决此问题:

Route::resource('p_grid', 'BasicController@p_grid');
Route::get('p_grid/{category}/{subcategory}', [
    'as'   => 'category-with-subcategory',
    'uses' => 'BasicController@gridWithSubcategory',
]);

并确保gridWithSubcategory文件中有BasicController.php方法。

那就是说,我建议你在宣布Route::resource()时更好地理解Laravel正在做什么,因为我会质疑你真正需要多少。它实际上只是注册普通路线的简写(请参阅here了解完整列表和规范),例如indexcreateshow,{{1}如果你想看到你的应用实际拥有的路由,在被Laravel解析后(包括你destroy以外的路由,可能已经被第三方包注册),输入routes.php在CLI上。

最后,我强烈建议您在整个应用中使用路由名称,以获得更好的清晰度和便携性。上面的php artisan route:list命令会为您提供路由名称,因此您可以在视图中使用以下内容:

artisan

这样,如果您想改变路线的足迹,视图就不会中断(只要您保持参数要求)。

答案 1 :(得分:0)

我的view.blade.php代码

<a href="{{ url('p_grid', ['category' => $cat_id, 'subcategory' => $row->sub_id]) }}">

我的路线代码

Route::get('p_grid/{category}/{subcategory}', [
    'as'   => 'category-with-subcategory',
    'uses' => 'BasicController@p_grid'
]);

我的BasicController代码在这里

public function p_grid(Request $request, $id)
{
 echo "success";
}

成功上传图片和完成工作

enter image description here