2016-12-30 106 views
3

预览应用程序时,Laravel 5.3升级后出现路由未定义错误。它在5.2版本中工作。升级到Laravel 5.3 - 未定义路由错误

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', '[email protected]'); 

Route::get('/home', '[email protected]'); 

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.3?任何在Laravel 5.3中经验丰富的人的帮助将不胜感激。

+0

在Laravel 5.3几件事情deprected。看看这个[指南升级5.2至5.3](https://laravel.com/docs/5.3/upgrade#5.2-deprecations) –

回答

2

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

这对我的问题也造成了问题。 An issue was raised一会儿回来,但显然这个变化是故意。长话短说,在生成路由名称时,Laravel 5.3不再追加.之后的前缀。

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

如果你想效仿5.2路线命名,你需要的调整as属性路线小组包括尾随.

例如:

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

一个巨大的谢谢你。我很开心,这工作。在app.blade.php中,我刚刚删除了“admin。”,而route:list对我非常有帮助。 :) – user2502479