付费课程, 订阅后即可观看

Eloquent 详解

20 集视频
2小时14分钟

Laravel ORM 中一对多的关系映射其实跟一对一的概念一脉相承,就是通过外键绑定指定的 model 对象,外键的定义方式也非常规矩,使用目标的id进行绑定即可,本视频咱们就看看如何用最粗暴的操作数据库的方式绑定对象与对象之间一对多的关系.

heibai 2019.01.06 08:11

你好,请问1对多分别再两个数据库里面,那么关系该如何设置呢,我上模型里面的代码

class FsUser extends Model { protected $connection = 'mysql_branch';

protected $table = 'fs_user';

public function fsUserPhones(){ return $this->hasMany(FsUserPhone::class); }

报错信息是 Base table or view not found: 1146 Table 'yike.fs_user_phones' doesn't exist

分析 把模型FsUserPhone 也放到mysql_branch这个数据库中去找了

国营 2019.01.06 08:24

刚看错了,你这里指定的表格 fs_user 和你下面的 yike.fs_user_phones 说的不是一个表格

heibai 2019.01.06 08:29

数据库刚才忘记介绍了,1号库yike有fs_user,2号库有fs_user_phones

报错信息 Base table or view not found: 1146 Table 'yike.fs_user_phones' doesn't exist

正确的SQL应该是 2号库.fs_user_phones ,请问如何修改关联模型

国营 2019.01.06 09:04

晚上得了空,我也帮你实验一下,我也真的很久没折腾不同库的关联了,正好我也再复习一下,按说按照官方的这个说明应该是没问题的。

heibai 2019.01.06 09:10

提前谢谢了,文档这方面都没怎么提这块,实在无法下手,卡再这里了

国营 2019.01.06 09:16

呵呵,都录得话,光 ORM 就能把我折腾死,所以录都是平时工作最可能遇到的情况,毕竟只有少数人会有机会折腾多库,折腾多服务器啥的。而且大部分其实是卡在基础的部分了,基础的突破了,就可以自己研究文档中进阶的东西了。

国营 2019.01.06 13:32

兄弟,不好意思,我先回复你一下吧,今天晚上还真抽不出时间看这个问题了,今晚的事情比较多,我得把 git 和 github 两套视频剪辑完,估计得搞到12点去了,我把这件事加到明天的工作列表中。

heibai 2019.01.07 02:07

OK,有时间留言下就好

国营 2019.01.07 05:45

我试了一下,要分情况,我也录一套视频说明一下得了,你可以继续学习别的内容,这套视频弄好了我会发到你邮箱。

heibai 2019.01.07 12:38

问题我倒是解决了,但感觉不是特别好,就是在其他模型里面加上$connection

国营 2019.01.07 12:43

追求完美的话活儿就没法干了,只添加一个 connection 已经很简单了,不要在这个事情上纠结

YszeJ 2019.05.12 06:34

关于评论功能,用户在创建文章评论的时候,它那个comment_id怎么获取post中的id,使它们相同,

就例如:好几篇文章由一个人创键的,然后通过 $date[author_id]=Auth::id(),就能给author_id赋值。

那我要怎么帮comment_id赋值呀

国营 2019.05.12 06:43

你的意思是获取被评论的 post 的 post_id ??这个很简答啊,我们评论的时候都是评论当前打开的文章,当前这个页面肯定传递了当前文章的数据比如

return view('posts.show',comact('post'))

只要有 $post 这个变量,我们获取 id 是个很容易的事情

YszeJ 2019.05.12 07:00

我的意思是,在资源控制器里怎么获取这个post_id

(我也不知道我表达清不清楚哈哈哈)

国营 2019.05.12 07:06

我猜一猜吧,创建comment的时候,我们需要获取comment的内容,也就是用户的在输入框里敲的东西,用户的值咱们是不用在form表单里传递的,因为咱们拿这个数据很方便,现在的问题就是怎么拿 post_id , 可以在form表单里定义一个隐藏的input输入项,让它的 value 等于 $post-&gtid 就可以了,这样就可以传递过去了

微信扫码登录