前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >laravel 使用资源路由创建控制器关联模型获取不到实例??(坑)

laravel 使用资源路由创建控制器关联模型获取不到实例??(坑)

作者头像
友儿
发布于 2022-09-11 04:49:20
发布于 2022-09-11 04:49:20
90100
代码可运行
举报
文章被收录于专栏:友儿友儿
运行总次数:0
代码可运行
laravel 使用资源路由创建控制器关联模型获取不到实例??(坑)

我们一般使用以下命令创建资源控制器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
php artisan make:controller Admin/FangAttrController -r -m Models/FangAttr

然后添加资源路由

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Route::resource('fangattr', 'FangAttrController');

在控制器中使用edit或者update方法的时候(下面方法是自动生成的)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public function edit(FangAttr $fangAttr)
{
  // 
  dd($fangAttr); 
}
public function update(Request $request, FangAttr $fangAttr)
{
  //
  dd($fangAttr);
}
public function destroy(FangAttr $fangAttr)
{
  //
  dd($fangAttr);
}

死活为空,我刚开始还以为我某个地方写的有问题呢?排查了一遍控制器,模型,视图,数据库之类的都未解决。最后我查看了一下路由列表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
php artisan route:list | findstr fangAttr (windows)
php artisan route:list | grep fangAttr (linux) 
php artisan route:list  (windows/linux) 

|        | POST          | admin/fangattr                 | admin.fangattr.store      | App\Http\Controllers\Admin\FangAttrController@store      | web,checkAdminLogin:login |
|        | GET|HEAD      | admin/fangattr                 | admin.fangattr.index      | App\Http\Controllers\Admin\FangAttrController@index      | web,checkAdminLogin:login |
|        | GET|HEAD      | admin/fangattr/create          | admin.fangattr.create     | App\Http\Controllers\Admin\FangAttrController@create     | web,checkAdminLogin:login |
|        | POST          | admin/fangattr/uploadFile      | admin.fangattr.uploadFile | App\Http\Controllers\Admin\FangAttrController@uploadFile | web,checkAdminLogin:login |
|        | DELETE        | admin/fangattr/{fangattr}      | admin.fangattr.destroy    | App\Http\Controllers\Admin\FangAttrController@destroy    | web,checkAdminLogin:login |
|        | GET|HEAD      | admin/fangattr/{fangattr}      | admin.fangattr.show       | App\Http\Controllers\Admin\FangAttrController@show       | web,checkAdminLogin:login |
|        | PUT|PATCH     | admin/fangattr/{fangattr}      | admin.fangattr.update     | App\Http\Controllers\Admin\FangAttrController@update     | web,checkAdminLogin:login |
|        | GET|HEAD      | admin/fangattr/{fangattr}/edit | admin.fangattr.edit       | App\Http\Controllers\Admin\FangAttrController@edit       | web,checkAdminLogin:login |

才发现,命令行自动生成的edit、update、destroy方法 的参数变量有问题,应该修改为与路由一致路由中参数为fangattr 而方法中参数为FangAttr $fangAttr,大小写有问题。需要修改路由Route::resource('fangAttr', 'FangAttrController');再次查看路由列表,完美解决

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
|        | POST          | admin/fangAttr                 | admin.fangAttr.store      | App\Http\Controllers\Admin\FangAttrController@store      | web,checkAdminLogin:login |
|        | GET|HEAD      | admin/fangAttr                 | admin.fangAttr.index      | App\Http\Controllers\Admin\FangAttrController@index      | web,checkAdminLogin:login |
|        | GET|HEAD      | admin/fangAttr/create          | admin.fangAttr.create     | App\Http\Controllers\Admin\FangAttrController@create     | web,checkAdminLogin:login |
|        | POST          | admin/fangAttr/uploadFile      | admin.fangattr.uploadFile | App\Http\Controllers\Admin\FangAttrController@uploadFile | web,checkAdminLogin:login |
|        | DELETE        | admin/fangAttr/{fangAttr}      | admin.fangAttr.destroy    | App\Http\Controllers\Admin\FangAttrController@destroy    | web,checkAdminLogin:login |
|        | GET|HEAD      | admin/fangAttr/{fangAttr}      | admin.fangAttr.show       | App\Http\Controllers\Admin\FangAttrController@show       | web,checkAdminLogin:login |
|        | PUT|PATCH     | admin/fangAttr/{fangAttr}      | admin.fangAttr.update     | App\Http\Controllers\Admin\FangAttrController@update     | web,checkAdminLogin:login |
|        | GET|HEAD      | admin/fangAttr/{fangAttr}/edit | admin.fangAttr.edit       | App\Http\Controllers\Admin\FangAttrController@edit       | web,checkAdminLogin:login |
  • 自己实力给自己挖坑,哭着也要填住。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Laravel 控制器:从 MVC 模式聊起
到目前为止,我们定义的所有路由都是基于闭包函数实现的,前面已经提到过,随着应用体量的增长,不可能将所有路由都定义在单个文件中,且对于复杂的业务逻辑,闭包函数也不足以支撑,所以和其他 Web 应用框架一样,我们还可以通过控制器来定义路由。
学院君
2020/10/19
11.4K0
Laravel 控制器:从 MVC 模式聊起
laravel 学习之路 路由与控制器
有时候啊 一大堆路由它们都有共同的地方,比如都使用一个中间件(过两天写)或是前缀都一样,避免代码重复 我们可以将他们分到一组中。
风清醉
2019/12/18
1K0
laravel 学习之路 控制器Controller
前面学习了路由可以分发请求还可以引入html页面,这些都可以在 route/web.php 中搞定。
风清醉
2019/12/19
5810
【Laravel系统3.3】控制器与表单验证
在请求过程中,控制器往往是我们在做业务开发时绕不过的一环。从 MVC 理论的成熟到现代化的开发过程中,控制器一直扮演着重要的角色。可以说,我们可以不要前端(只做接口),可以不要模型(直接读取数据),但控制器却是必不可少的。当然,在正式的 MVC 模型中,视图是可以直接和模型交互的,由此,也引申出了 MVP 模型,其中的这个 P 就是强化控制器的作用,让模型和视图解耦。其实我们大部分正规的开发,都是基于这个 MVP 的,很少会直接让视图和模型去交互。
硬核项目经理
2023/03/03
8.7K0
【Laravel系统3.3】控制器与表单验证
Laravel5.8开发环境搭建与CRUD应用实践
在这个面向初学者的教程中,我们将学习如何使用最新的PHP开发框架Laravel 5.8,来创建一个基于MySQL数据库的Web应用,实现联系人的增删改查功能。
用户1408045
2019/08/25
6.3K0
Laravel 5 系列入门教程(二)【最适合中国人的 Laravel 教程】
我们将改变学习路线,不再像 Laravel 4 教程那样先构建登录系统。在本篇教程中,我们将一起构建 Pages 的管理功能,尝试 Laravel 的路由和 PHP 的命名空间。
竹清
2018/08/31
9030
Laravel 5 系列入门教程(二)【最适合中国人的 Laravel 教程】
laravel的那些坑
服务器是Nginx的 照着文档通过composer安装了一个非最新版本 (5.0)那版。
lilugirl
2019/05/26
1.9K0
Laravel5.6博客中文章标签增删改查
该命令会在 app 目录下创建模型文件 Tag.php,由于我们在 make:model 命令中使用了 --migration 选项,所以同时会创建 Tag 模型对应的数据表迁移。
写PHP的老王
2019/08/12
6410
Laravel5.6博客中文章标签增删改查
30分钟用Laravel实现一个博客
控制器方面 app/Http/Controllers/ 我们修改一下 HomeController.php
猿哥
2019/11/13
7.5K0
Laravel踩坑日记之路由配置
Laravel 可以轻松使地保护你的应用程序免受 cross-site request forgery (CSRF)攻击,跨站点请求伪造是一种恶意攻击,它凭借已通过身份验证的用户身份来运行未经过授权的命令。
Meng小羽
2019/12/23
7110
基于Model Event模型事件的Laravel实时APP
说明:本文主要来源于real-time-apps-laravel-5-1-event-broadcasting
botkenni
2022/01/10
5.6K0
基于Model Event模型事件的Laravel实时APP
laravel用crud修改产品items-新建resource controller和routing
  前面我们创建了laravel简单的items产品api,但是需要在数据库添加,如何在网页上直接添加呢?我们可以用view来操作crud(增加Create、读取查询Retrieve、更新Update和删除Delete)。下面随ytkah一起来实现吧
ytkah
2018/08/01
3930
laravel用crud修改产品items-新建resource controller和routing
3分钟短文:Laravel控制器用法光速入门
上一章我们介绍了laravel路由注册中的“花拳绣腿”,样样都是那么优雅而实用。路由传递过来的参数,在经过中间件验证和导向之后,应该去控制器接受处理了。
程序员小助手
2020/10/21
1.8K0
3分钟短文:Laravel控制器用法光速入门
laravel5.2的新功能
上一节课我们学了laravel5.3的新特性 https://my.oschina.net/lilugirl2005/blog/787478
lilugirl
2019/05/28
1.5K0
laravel5.2的新功能
Laravel中resource详解(引用自官方文档)
Laravel 遵从 RESTful 架构的设计原则,将数据看做一个资源,由 URI 来指定资源。对资源进行的获取、创建、修改和删除操作,分别对应 HTTP 协议提供的 GET、POST、PATCH 和 DELETE 方法。当我们要查看一个 id 为 1 的用户时,需要向 /users/1 地址发送一个 GET 请求,当 Laravel 的路由接收到该请求时,默认会把该请求传给控制器的 show 方法进行处理。
咪啪咪啪
2019/11/15
2.1K0
牛哇,PHP这个开发框架真的好香!
之前写Java的mybatis各种sql的和字段的处理,试过php开发之后,确实很快啊。而且我也是从Java,golang裸转的php。这里不谈那种语言好坏之分。开发来说,拥抱技术,拥抱变化,公司用什么技术栈,你就用什么技术。熟练开发就好了。
千羽
2023/11/20
2900
牛哇,PHP这个开发框架真的好香!
推荐17-Laravel 中使用 JWT 认证的 Restful API
在此文章中,我们将学习如何使用 JWT 身份验证在 Laravel 中构建 restful API 。JWT 代表 JSON Web Tokens 。我们还将使用 API 为用户产品创建功能齐全的 CRUD 应用。
猿哥
2019/09/24
11.1K0
推荐17-Laravel 中使用 JWT 认证的 Restful API
Laravel踩坑日记之中间件配置
本文采用CC BY-NC-SA 3.0 Unported协议进行许可,转载请保留此文章链接
Meng小羽
2019/12/23
7470
3分钟短文:Laravel路子真野啊!路由昵称前缀中间件
上一章内容我们介绍了使用laravel路由动词定义方便的url,以及通过url参数绑定传递数据, 本文我们继续深入Route功能,学习一些提升生产力的方法,在现实场景中也非常实用。
程序员小助手
2020/10/20
1.6K0
3分钟短文:Laravel路子真野啊!路由昵称前缀中间件
laravel5分钟完成登录注册
以下均是在laravel5.2+版本进行操作,5.1部分适用,建议使用5.2新增许多方便的功能,5.1的多表验证极其麻烦,不推荐使用
horan1
2023/07/25
1870
laravel5分钟完成登录注册
相关推荐
Laravel 控制器:从 MVC 模式聊起
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文