首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel4:双桩路线

Laravel4:双桩路线
EN

Stack Overflow用户
提问于 2013-11-21 10:29:32
回答 1查看 211关注 0票数 0

对不起,如果听起来很奇怪,但是在路线上,我认为我需要做两个操作:

代码语言:javascript
复制
Route::post('booking', 'HomeController@booking');
Route::post('booking', function()
{
    return Queue::marshal();    
});

但是,当然,我得到了一个错误:无效的数据。

但是对于视图的“预订”,我需要调用控制器的方法,同时返回Queue::marshal()

也许我能做到?

非常感谢!

编辑:

以下是HomeController@订票方法:

http://paste.laravel.com/19ej

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-21 11:40:45

如果使用相同的动词和url定义两条路径,则第二条路径永远不会被触发。

代码语言:javascript
复制
Route::post('booking', 'HomeController@booking'); // Laravel will find this route first
Route::post('booking', function()                 // so this function will never be executed
{
    return Queue::marshal();    
});

我看到您的HomeController@booking()正在处理一个表单。为什么你可以用另一条路来做这件事?

代码语言:javascript
复制
Route::post('booking/create', 'HomeController@booking');

然后将表单action方法更改为指向以下路由:

代码语言:javascript
复制
// this will render <form method="POST" action="http://yourdomain.com/booking/create"
{{ Form::open(array('action' => 'HomeController@booking')) }}

这样你就不会有一条路线重叠另一条。

一些与问题无关的建议。看看您的控制器,我注意到您在检查错误时会这样做:

代码语言:javascript
复制
if ( ! $errorCondition) {
  // do stuff
} else {
  // show errors
}

如果像这样编写代码,代码将更容易阅读:

代码语言:javascript
复制
if ($errorCondition) {
   // return error
}

// do stuff
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20118384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档