laravel 多态关联的心得体会
在模型关联的章节中,提到了多态关联,一对一,一对多都可以。
文档中说明的多态关联字段 imageable 这个地方。我们实际在自己项目中使用的时候,要特别注意,在填写 imageable_type 属性的值的时候,需要填写包括命名空间的类的全名。如果我们的 Post 类的包括命名空间的全称是”App\Models\Post”,则我们存入数据库表时也要存入”App\Models\Post”,不能存储成”Post” 或者”post”. 如果存储成这样在父模型中通过关联方法(function 定义)fn () 获取子模型数据不会报错,但是返回的数据列表为空。如果从父模型通过 load () 关联子模型,则会报对象找不到的错误。
我在实际开始的项目中,一开始就通过关联方法 $post->image ()->get (). 获取子模型数据,结果一直是空列表,但是没有报错。多次尝试后,通过 $post->load (‘image’), 才通过报错定位到问题并解决。
推荐文章: