【发布时间】:2016-02-14 16:56:29
【问题描述】:
我正在创建一个简单的应用程序,它使用单个数据库表来存储帖子类型。为了便于描述,我将它们称为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;
...
}
我已经搜索和玩了很长一段时间,但找不到任何有用的东西。这可能吗?
【问题讨论】:
-
为什么不为推文和文章创建不同的控制器
-
关于此评论“当然,我可以在表单中创建一个隐藏字段并在其中添加类型,但有人可以对其进行编辑,我们会以错误的类型保留记录。”请注意,您无法控制通过表单发送到您的应用程序的内容。有人可以使用 POSTMan 和其他实用程序。进行适当的验证是您的责任
-
@Digitlimit 是的,绝对是,而且我确实在努力验证服务器端。我可以很容易地检查类型是什么,如果它不是有效的只是
abort(405),那就可以了。只是寻找基于路线的东西(如果存在)。 :)
标签: routes laravel-5.2