【问题标题】:Laravel share model and relationship to childLaravel 分享模型和与孩子的关系
【发布时间】:2021-04-07 13:49:55
【问题描述】:

我有 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

但我无法访问所有媒体功能关系,如流派、演员等。

【问题讨论】:

    标签: laravel


    【解决方案1】:

    您可以阅读有关 Traits 的信息。它允许您附加到任何模型,并且它会自动扩展您在 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;
        
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      • 2016-03-21
      • 2018-04-18
      • 1970-01-01
      • 2020-10-26
      • 1970-01-01
      相关资源
      最近更新 更多