Laravel将路由命名为错误的资源路径

时间:2014-02-03 16:29:03

标签: laravel routing blade

routes.php文件

/**
 *
 * Login Functionality
 * 
 */

Route::get('login', 'SessionsController@create');
Route::get('logout', 'SessionsController@destroy');
Route::resource('sessions', 'SessionsController');

/**
 *
 * Admin Routes
 * 
 */

Route::group(['prefix' => 'admin'], function()
{
    Route::resource('tests', 'Admin\TestController');
});

php artisan routes

+--------+-----------------------------------------------+-------------------------------+----------------------------------------+----------------+---------------+
| Domain | URI                                           | Name                          | Action                                 | Before Filters | After Filters |
+--------+-----------------------------------------------+-------------------------------+----------------------------------------+----------------+---------------+
|        | GET /                                         |                               | Closure                                |                |               |
|        | GET login                                     |                               | SessionsController@create              |                |               |
|        | GET logout                                    |                               | SessionsController@destroy             |                |               |
|        | GET sessions                                  | sessions.index                | SessionsController@index               |                |               |
|        | GET sessions/create                           | sessions.create               | SessionsController@create              |                |               |
|        | POST sessions                                 | sessions.store                | SessionsController@store               |                |               |
|        | GET sessions/{sessions}                       | sessions.show                 | SessionsController@show                |                |               |
|        | GET sessions/{sessions}/edit                  | sessions.edit                 | SessionsController@edit                |                |               |
|        | PUT sessions/{sessions}                       | sessions.update               | SessionsController@update              |                |               |
|        | PATCH sessions/{sessions}                     |                               | SessionsController@update              |                |               |
|        | DELETE sessions/{sessions}                    | sessions.destroy              | SessionsController@destroy             |                |               |
|        | GET admin/tests                               | admin.tests.index             | Admin\TestController@index             |                |               |
|        | GET admin/tests/create                        | admin.tests.create            | Admin\TestController@create            |                |               |
|        | POST admin/tests                              | admin.tests.store             | Admin\TestController@store             |                |               |

...

节/ create.blade.php

{{ Form::open(
    array(
        'route'  => array('sessions.store'),
        'role'   => 'form',
        'class'  => 'form-horizontal'
    )
) }}
访问http://localhost/login

时输出

<form method="POST" action="http://localhost/admin/tests" accept-charset="UTF-8" role="form" class="form-horizontal"><input name="_token" type="hidden" value="yQZH861VbytYsA8bBboYv5YexVInP33LdxmVHtq2">
    <input name="_token" type="hidden" value="yQZH861VbytYsA8bBboYv5YexVInP33LdxmVHtq2">

出于某种原因,'route' => array('sessions.store'),指向路线'route' => array('admin.tests.store'),

知道发生了什么或如何解决?

1 个答案:

答案 0 :(得分:0)

我不确定您为什么会看到您所看到的行为,但如果您只是将它们发送到sessions.store路线,它应该看起来像< / p>

'route' => 'sessions.store'代替'route' => array('sessions.store')

数组允许您传递路线参数,但没有参数,我不确定发生了什么。

http://laravel.com/docs/html