laravel 包的命名路由
laravel named routing for package
我一直在使用 laravel 5 包 development.So 我用 composer 创建了一个包 'lakshmajim/testview'.
我已经通过创建新的 laravel 项目克隆了该包进行测试
composer require lakshmajim/testview dev-master
然后像这样更新composer.json主文件
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\": "app/",
"lakshmajim\testview\": "vendor/lakshmajim/testview/src"
}
},
那我就完成了
composer dumpautoload
composer update
php artisan vendor:publish
我的路线(php artisan route:list)
+--------+----------+-----------------+-------------------------+------------+
|Domain|Method | URI |Name| Action | Middleware |
+--------+----------+-----------------+------+----------+------------+
| | GET|HEAD| / | | Closure
| | GET|HEAD| accessurl/{str}| | lakshmajim\testview\TestviewController@index | |
| | GET|HEAD| hi | | App\Http\Controllers\Controller@e | |
当我尝试访问时
http://localhost:8000/accessurl/any%20parameter%20here
工作 正常并显示结果。
我的控制器文件
use Redirect;
class Controller extends BaseController
{
public function e()
{
$url='accessurl/strtestpackage';
return Redirect::route($url);
}
}
问题 是当我尝试从控制器访问包路由时它显示以下错误
`**InvalidArgumentException in UrlGenerator.php line 296: Route [accessurl/str] not defined**`.
问题 我怎样才能访问供应商目录表单控制器中存在的命名路由? (如何使用 vendor/lakshmajim/testview/src/routes.php 来自 app/Http/Controllers/Controller.php 的文件? )
谢谢。
route()
方法将路由名称作为参数。如我所见,您的包裹没有路线名称。
你可以只使用 redirect()
return redirect('/url/here');
同样在您的 routes.php
中,您可以使用 as
关键字定义路线名称。检查文档 here.
我一直在使用 laravel 5 包 development.So 我用 composer 创建了一个包 'lakshmajim/testview'.
我已经通过创建新的 laravel 项目克隆了该包进行测试
composer require lakshmajim/testview dev-master
然后像这样更新composer.json主文件
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\": "app/",
"lakshmajim\testview\": "vendor/lakshmajim/testview/src"
}
},
那我就完成了
composer dumpautoload
composer update
php artisan vendor:publish
我的路线(php artisan route:list)
+--------+----------+-----------------+-------------------------+------------+
|Domain|Method | URI |Name| Action | Middleware |
+--------+----------+-----------------+------+----------+------------+
| | GET|HEAD| / | | Closure
| | GET|HEAD| accessurl/{str}| | lakshmajim\testview\TestviewController@index | |
| | GET|HEAD| hi | | App\Http\Controllers\Controller@e | |
当我尝试访问时
http://localhost:8000/accessurl/any%20parameter%20here
工作 正常并显示结果。
我的控制器文件
use Redirect;
class Controller extends BaseController
{
public function e()
{
$url='accessurl/strtestpackage';
return Redirect::route($url);
}
}
问题 是当我尝试从控制器访问包路由时它显示以下错误
`**InvalidArgumentException in UrlGenerator.php line 296: Route [accessurl/str] not defined**`.
问题 我怎样才能访问供应商目录表单控制器中存在的命名路由? (如何使用 vendor/lakshmajim/testview/src/routes.php 来自 app/Http/Controllers/Controller.php 的文件? )
谢谢。
route()
方法将路由名称作为参数。如我所见,您的包裹没有路线名称。
你可以只使用 redirect()
return redirect('/url/here');
同样在您的 routes.php
中,您可以使用 as
关键字定义路线名称。检查文档 here.