首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel雄辩地质疑“with”

Laravel雄辩地质疑“with”
EN

Stack Overflow用户
提问于 2016-11-22 03:54:03
回答 3查看 312关注 0票数 3

我有usersimagesimage_user表。我正试图加载和使所有用户的图像,但limit图像只有4。

把它想象成一个画廊。用户可以有一个或多个图像

用户模型

代码语言:javascript
复制
public function images()
{

   return $this->belongsToMany(Images::class);
}

到目前为止,这是我的疑问。

代码语言:javascript
复制
User::with(['images' => function ($query) {
   $query->limit(4);
  }
])->get();

此查询返回用户但带有空关系(图像)

任何帮助都将不胜感激。

干杯

EN

回答 3

Stack Overflow用户

发布于 2016-11-22 03:58:00

做这件事是不容易的。

看看Jarek Tkaczyk在这个问题上的出色文章:

如何为每个家长获取N个相关模型

票数 1
EN

Stack Overflow用户

发布于 2016-11-22 17:10:34

代码语言:javascript
复制
$user = User::with('images')->limit(5)->get();

您知道php手工修补程序吗?您可以通过命令行输出数据。

试着用..。

代码语言:javascript
复制
App\User::with('images')->limit(5)->get();

..and您将看到5个用户的图像,提供您的关系是正确的。

编辑的

对不起,我看错你的问题了。

为了限制每个用户返回的图像,您可以在用户模型上创建一个新方法,如下所示。

代码语言:javascript
复制
    public function imageslimit(){

       return $this->belongsToMany(Images::class)->limit(5);

    }

将所有用户从控制器传递到您的视图。

代码语言:javascript
复制
$users = User::all();

然后在浏览视图中的所有用户时调用,只需这样做。

代码语言:javascript
复制
@foreach($user->imageslimit as $image)

   $image->name; 

@endforeach

我测试了这个,这对我来说很好。

票数 1
EN

Stack Overflow用户

发布于 2016-11-22 04:12:17

使用take()只拍摄5幅图像。

代码语言:javascript
复制
$users=User::with('images')->get();
foreach($users as $user)
{
   echo $user->name;
   foreach($user->images->take(5) as $image)
   {
      echo $image;
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40733496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档