我想要以下网址:
http://localhost/question/1/choices/
并且可选/ question / 1 / choices / 3
其中1是question_id,3是choice_id。
我怎样才能在Laravel中做到这一点?
由于
更新 我想我可以通过类似
的方式实现这一目标Route::get('questions/(:num)/choices/(:num)')
但是如何将其链接到控制器
Class Questions extends Base_Controller {
public static $restful = TRUE;
public function get_choices($question_id, $choice_id) {
//
}
}
答案 0 :(得分:1)
你会想要一个Questions_Controller
(请记住_Controller
,这很重要),如下:
// controllers/questions.php
class Questions_Controller extends Base_Controller {
public $restful = true;
public function get_choices($question_id, $choice_id)
{
// Use $question_id and $choice_id
}
}
您的路线看起来像controller@action
,所以......
// routes.php
Route::get('questions/(:num)/choices/(:num)', 'questions@choices');
在Controller Routing的CLI Route Testing部分之前的{{3}}结尾处介绍了路由到行动。通配符与执行匿名函数的操作相同。
答案 1 :(得分:0)
Laravel允许您使用嵌套资源.. 在您的情况下,您可以在routes.php
中包含以下内容Route::resource('question', 'QuestionController');
Route::resource('question.choices', 'ChoicesController');
然后在你的ChoicesController中确保传入question_Id和choice_Id
您可以通过运行来检查是否所有内容都已正确路由:
php artisan routes