预览应用程序时,我在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中有经验的人都会非常感激。
答案 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'
], // ...