【问题标题】:Laravel redirect to view with specific URL parameters (gives route not defined)Laravel 重定向到带有特定 URL 参数的视图(给出未定义的路由)
【发布时间】:2017-06-03 10:40:44
【问题描述】:

这是我的第一个 Laravel 项目,我犯了一个路由错误,并且一直在尝试解决它好几天,解决方案必须非常简单,所以我错过了一些东西。我尝试了一些在其他帖子中找到的类似解决方案,但它们包含更复杂的代码,此时只会让事情变得更糟。

我有一条 GET 路线,例如:

Route::get('peppers/{id}', function ($id) {
    //return $id;      
    $pepper = DB::table('peppers')->get(); 
    return view('peppers',['id' => $id,'pepper'=>$pepper]);    

})->name('peppers');

而且我还有一个简单的 POST 路由。 (对于我在另一个页面上使用的表格) 它将所有内容正确插入我的数据库。问题在于重定向。

Route::post('pepperCreate', function (\Illuminate\Http\Request $request) {

    $post = $_POST;
    $pepperType = $_POST["pepperType"];
    $pepperURL = $_POST["pepperURL"];
    $pepperAuthor = $_POST["pepperAuthor"];
    and so on... ending with:

return redirect()->route('peppers/{id}', [$id]);

})->name('pepperCreate');

但是每次我尝试重定向时,它都会给我一个错误提示:

路线 [peppers/{id}] 未定义。

(我的问题是:我不只是定义了那个 GET 路由,因为当我点击那个 URL 时它起作用):

<a href="{{route('peppers',['id' => $topic->id])}}">{{$topic->topicTitle}}</a>

经过几天尝试不同的变体后,我试图弄清楚我在这里缺少什么。任何意见表示赞赏。

【问题讨论】:

    标签: php laravel view parameters routing


    【解决方案1】:

    确实,因为您需要使用路由的名称,并且还需要为参数使用关联数组,如:

    return redirect()->route('peppers', ['id' => $id]);
    

    希望这会有所帮助!

    【讨论】:

    • 天哪,我现在感觉好傻!我应该休息很长时间来重新考虑它。您的解决方案有效。谢谢 MacPrawn。
    猜你喜欢
    • 1970-01-01
    • 2017-12-30
    • 2013-09-14
    • 2014-06-10
    • 2013-09-19
    • 2017-05-15
    • 2021-07-19
    • 1970-01-01
    • 2013-05-28
    相关资源
    最近更新 更多