渴望加载:如何从表中获取具有多态关系的一些照片

时间:2017-06-21 14:10:23

标签: mysql laravel-5 eloquent

我不会得到一个拥有头像和4张照片的用户列表,例如屏幕截图:enter image description here

用户模型:

   public function avatar()
   {
      return $this->morphOne(Photo::class, 'photoable')
        ->where('photoable_type', 'user');
   }

   public function photos()
   {
     return $this->morphMany(Photo::class, 'photoable')
        ->where('photoable_type', 'photo');
   }

   public function scopeLastPhotos($query)
   {
      return $query->with(['photos' => function ($query) {

         $query->take(4)->get();

      }]);
   }

照片模特:

   public function photoable()
   {
      return $this->morphTo();
   }

我试过了:

$users = User::with('avatar')->lastPhotos()->get();

但结果只有头像和空照片集:

enter image description here

所有照片都存在于桌面上。

1 个答案:

答案 0 :(得分:0)

我用mysql函数'group_concat'解决了这个问题:

List<Issue> findByProjectAndDescriptionRegex(long project, String regex);

List<Issue> findByProjectAndSummaryRegexOrDescriptionRegex(long project, String regex, String regex);

但'group_concat'没有'限制'https://bugs.mysql.com/bug.php?id=30098

对于我的任务,我使用了这个决定:

std::unordered_map<void(*)(void), int> tmp;

但也许有人知道更优雅的决心?