Laravel中的一些路由问题,老是报404错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel中的一些路由问题,老是报404错误相关的知识,希望对你有一定的参考价值。
上面是routes.php文件 分别定义了三个路由 第一个路由的第一个参数是‘/’ 能正常访问 其地址为1 2 7 .0. 0. 1/laravel/
第二个是下载时就自带好的,所以语法上应该没问题 其第一个参数为‘home’ 但不能正常访问 其地址为:1 27 . 0 . 0 . 1/laravel/home 总是报40NOT FOUND错误
是我配置错误还是我输入地址的方式错误(提示:那本地的127.x.x.1我是为了能输上去才用空格分开的 因为有时百度不给这样写)
还有。laravel 有 php artisan,里面有 route:list 的方法,你可以用那个去查看你路由的配置是否正确追问
这个是artisan的里面的代码 改哪里啊
还有那个home加了/还是没用
怎么办 ~~~
我让你直接在cmd 中运行 php artisan route:list
追问| Domain | Method | URI
| Name | Action
| Middleware |
| |
这些信息 看不懂。。。。。
laravel 表单生成错误的操作 url / 路由错误
【中文标题】laravel 表单生成错误的操作 url / 路由错误【英文标题】:laravel form generates wrong action url / route error 【发布时间】:2016-08-06 13:12:18 【问题描述】:我正在尝试在 laravel 中创建一个表单来更新一些数据。 我首先在刀片模板中使用以下内容来使用模型中的数据填充表单:
Form::model($sensor, array('action' => 'settingsController@editSensor', $sensor->s_id))
$sensor 以这种方式从控制器发送到视图:
return view('settings.sensors.edit')->with('sensor', App\Sensor::find($sensorId))
文档并没有明确说明我是否还需要使用 Form::open ,但表单打开标记已经创建,所以我认为这就足够了。
在我的路线中,我有这些路线:
Route::get('/settings/sensors/edit/sensorId',['as' => 'sensor.edit', 'uses' => 'settingsController@editSensor']);
Route::post('/settings/sensors/edit/sensorId',['as' => 'sensor.edit', 'uses' => 'settingsController@editSensor']);
我可以通过访问http://localhost:8000/settings/sensors/edit/105 之类的网址访问表单,使用模型中的数据预填充就像一个魅力。
我遇到的问题是提交按钮现在可以工作了。它将提交给http://localhost:8000/settings/sensors/edit/%7BsensorId%7D 显然,sensorId 参数没有被正确替换。
在谷歌搜索后,我重写了 Form::model 函数调用:
Form::model($sensor, array('route' => route('sensor.edit',$sensor->s_id)), $sensor->s_id)
当我现在打开页面时,我直接得到这个错误:Route [http://localhost:8000/settings/sensors/edit/105] not defined
这似乎很奇怪,因为我没有对路由进行任何更改,并且为此 url 定义了一个路由。知道我哪里出错了吗?
【问题讨论】:
【参考方案1】:您实际上是在复制路由调用。当你执行Form::model($sensor, array('route' =>
时,Laravel 已经知道你正在尝试访问一个命名路由,并且期待一个路由名称。因此,当您随后执行route(...)
时,它首先会转换该路由调用,然后再尝试查找名为该路由的路由。
换句话说,它不是在抱怨页面 http://localhost:8000/settings/sensors/edit/105
不存在 - 它在抱怨没有路由将其作为其 as
名称。
删除它,并用带有路由名称和参数的数组替换它。然后你也可以去掉多余的$sensor->s_id
,像这样:
Form::model($sensor, array('route' => array('sensor.edit', $sensor->s_id)))
【讨论】:
以上是关于Laravel中的一些路由问题,老是报404错误的主要内容,如果未能解决你的问题,请参考以下文章
laravel5.2 移植到新服务器上除了“/”路由 ,其它路由对应的页面显示报404错误(Object not found!)———新装的LAMP没有加载Rewrite模块
laravel路由无法访问,报404,No query results for model [AppModels...]