升级到 Laravel 5.3 后出现“路由未定义”错误

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');

    }
);

这是Properties Controller的第一部分,用于索引视图:

    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.3的语法与5.2有所改变吗?非常感谢有经验的Laravel 5.3开发者提供任何帮助。


在Laravel 5.3中,有一些东西已经过时了。请查看此升级5.2到5.3的指南 - Orgil
1个回答

2
语法没有改变,但是Laravel 5.2和Laravel 5.3之间的路由命名发生了改变。这也给我带来了问题。一段时间以前有人提出了一个问题,但显然这个改变是有意的。简而言之,在生成路由名称时,Laravel 5.3不再在组前缀后追加.。您可以通过运行php artisan route:list来确定5.3中的当前路由名称,并相应地更新您的引用。如果您想模拟5.2的路由命名,您需要调整路由组的as属性,包括尾随的.。例如:
Route::group([
    'as' => 'admin.',
    'prefix' => 'admin',
    'namespace' => 'admin',
    'middleware' => 'admin'
], // ...

非常感谢。我很高兴这个方法可行。 在app.blade.php中,我只是移除了“admin.”,而route:list帮助了我很多。 :) - user2502479

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接