我正在创建一个简单的应用程序,它使用单个db表来存储帖子类型。为了便于说明,我只需将其称为Article
和Tweet
。
我正在尝试弄清楚如何在创建新记录时干净地将type
传递给控制器。当然,我可以在表单中创建一个隐藏字段并在那里添加类型,但有人可以编辑它,我们会用错误的类型保留记录。
我更喜欢做的是这样的事情
Route::post('articles', 'PostsController@store')->where('type', 'article');
Route::post('tweets', 'PostsController@store')->where('type', 'tweet');
我尝试了以上操作,但在PostsController中一直收到错误。
这就是我想要实现的目标......
public function store($type, PostRequest $request)
{
$input['type'] = $type;
$input['title'] = $request->title;
...
}
我一直在寻找和玩很长一段时间,找不到任何有用的东西。这可能吗?
答案 0 :(得分:0)
您似乎无法理解where
如何使用路线。
where方法接受参数的名称和定义参数应该如何约束的正则表达式:
示例:
Route::post('tweets/{type}', 'PostsController@store') ->where('type', '[A-Za-z]+');
我认为这就是你所需要的:
Route::post('posts/{type}', 'PostsController@store') ;
发布推文发送帖子请求到:
posts/tweet
或发布文章发送帖子请求。
posts/article