将数据发送到资源方法

时间:2019-01-17 11:05:59

标签: php laravel laravel-5.6

我需要向方法资源路由发送数据

示例:

Route::get('post/{post_type}', 'PostController@index')->where('post_type', '[A-Za-z]+');

但是我不知道如何在资源路由中做到这一点

Route::resource('post', 'PostController'); 

在通过链接发送数据时

{{route('post.index',['post_type'=>'news'])}}

URL中显示什么:

http://127.0.0.1:8000/admin/post?post_type=news

但是我需要的是

http://127.0.0.1:8000/admin/post/news

我试图解决这个问题:

Route::resource('post', 'PostController',['parameters'=>['post'=>'post_type']]);

但这只会更改URL资源:

来自:admin/post

发送至:admin/post_type

我也很难通过index方法获取此数据:

为此,我采取了以下行动:

public function index($post_type)
    { 
        return $post_type;
    }

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

据我对Resource Controllers的了解,您只有7 fixed URI`s可以使用您的资源。

因此,如果您正在调用index方法,则它具有标准的URI /post。您不能将其更改为/post/anything

您应该在URI posts中使用资源的复数版本。 Route::resource('posts', 'PostController');

因此您无法从index网址访问http://127.0.0.1:8000/admin/post/news方法。