升级到Laravel 5.3 - 路由未定义错误

时间:2016-12-30 21:41:04

标签: laravel laravel-5.3

预览应用程序时,我在Laravel 5.3升级后得到一条未定义错误的路由。它适用于5.2版本。

Route [admin.properties.index] not defined. (View: /home/ubuntu/workspace/resources/views/layouts/app.blade.php) (View: /home/ubuntu/workspace/resources/views/layouts/app.blade.php)

此代码来自app.blade.php:

                    <li>{{ link_to_route('admin.properties.index', 'Properties') }}</li>

我的web.php文件看起来更像是额外的路线和评论:

    <?php

Route::get('/', function () {
    return view('welcome');
});

Route::auth();

Route::get('/welcome', 'HomeController@index');

Route::get('/home', 'HomeController@home');

Route::group(
    [
        'prefix' => 'admin',
        'namespace' => 'admin',
        'middleware' => 'admin'
    ],
    function () {

            Route::resource('properties', 'PropertiesController');

    }
);

这是索引视图的属性控制器的第一部分:

    namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Property;
use App\Http\Requests\PropertyRequest;

class PropertiesController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $properties = Property::paginate(15);
        return view('admin.properties.index')->with('properties', $properties);
    }

我错过了辅助功能吗?在上面的代码中,语法是否从5.2变为5.2?任何在Laravel 5.3中有经验的人都会非常感激。

1 个答案:

答案 0 :(得分:2)

语法没有改变,但是,Laravel 5.2和Laravel 5.3之间的路由命名发生了变化。

这也给我带来了问题。 An issue was raised前一阵子,但显然这种变化是故意

简而言之,Laravel 5.3在生成路由名称时不再在前缀后附加.

您可以通过运行php artisan route:list来确定5.3中的当前路径名称并相应地更新您的参考。

如果要模拟5.2路由命名,则需要调整路由组的as属性,以包含尾随.。< / p>

例如:

Route::group([
    'as' => 'admin.',
    'prefix' => 'admin',
    'namespace' => 'admin',
    'middleware' => 'admin'
], // ...