laravel - Laravel 分享模型和与孩子的关系
问题描述
我有 3 个模型(媒体、漫画、电影),媒体是基本模型,其他的是孩子(漫画、电影)。媒体模型有自己的表( medias ),由 id、title、synopsis 组成。
我曾经在 MediaController 中访问媒体模型
Media::all();
媒体模型功能
genre()
language()
actor()
媒体模型如何能够共享所有事物包括功能关系。比方说
$medias = Media::all();
return $medias->genre;
漫画和电影模型。
$comics = Comic::all();
return $comics->genre;
所以我不会为每个模型创建每个关系函数,到目前为止,我可以通过将表设置为子模型内的媒体表来访问媒体模型内的表。
// comic, movie model
protected $table = 'medias';
// comic controller
$comics = Comic:all();
return $comics;
// $comics->genre ERROR
但我无法访问所有媒体功能关系,如流派、演员等。
解决方案
您可以阅读有关特征的信息。它允许您附加到任何模型,并且它会自动扩展您在 Trait 类中拥有的任何功能。例如:
<?php
namespace App;
trait HasAccountTrait
{
public function account()
{
return $this->belongsTo(Account::class);
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
use HasAccountTrait;
...
}
推荐阅读
- excel - 需要使用 vba 代码进行审计跟踪的代码
- c# - 如何脱离 EventToCommandBehavior?
- python - 单个ffts的numpy fftn顺序
- c# - 如何将空的 4 个单元格和 1 个单元格与 datagridview 中的值合并?
- firebase - 是否有任何功能可以在颤振中添加/更新 firebase 用户名和照片 url?
- python - 列标题应该为真
- youtube-api - 如果以内容所有者身份验证,为什么 videos.list 不返回私有视频元数据?
- java - 等效于 Java 8 中的 new Date().getTime()
- java - 如何处理'DeadlockLoserDataAccessException'?
- sql-server - 在公共数据库中的多个表中更改相同的字段名称