我有3张图片,专辑和murs,我想根据murs_id的参考来查看每张专辑的图片,murs_id是murs的id。
图片: ID albums_id 图像
专辑: ID 名称 图片 murs_id
MURS: ID 滴度
$grids = DB::table('images')
->select(['image']);
$grids->join('albums','images.albums_id','=','albums.id');
$grids->where('albums.murs_id','=','12');
$grids= $grids->get();
我收到此错误消息:无法使用stdClass类型的对象 阵列。
的print_r($栅极)
Array ( [0] => stdClass Object ( [image] => af6a8ce73d995a028422293bdc23774e.png )
[1] => stdClass Object ( [image] => 00204bc5330c4f6b84028d23b6e96c09.png )
[2] => stdClass Object ( [image] => b474b62ca932066ee5ac77094c757e74.png )
[3] => stdClass Object ( [image] => 2c24b205b24bb1b47da90c54e2babfdb.png )
[4] => stdClass Object ( [image] => 2d4b78b29ee5abbe103eed7b6b42cbdb.png )
[5] => stdClass Object ( [image] => 6041a1abb83b18d38918fe9c79309596.jpg )
)
答案 0 :(得分:0)
试试这个:
$grids = DB::table('images')
->select('images.image')
->join('albums','images.albums_id','=','albums.id')
->where('albums.murs_id','=','12')
->get();
答案 1 :(得分:0)
您的错误是在使用$ grid时的某个地方。使用此代码,您将收到PHP stdClass对象,您无法执行类似 - > first()的操作。
您可以将其包装在这样的集合中:
$grids= collect($grids->get());
答案 2 :(得分:0)
我建议您使用eloquent relationships作为查询数据库。如果您已正确设置关系,则可以写为:
$grids = Image::whereHas('album', function($q) {
$q->where('murs_id', 12);
})->get()
要使用Image
和Album
之间的关系,请在album()
类中添加Image
函数:
Image.php
public function album()
{
return $this->belongsTo(App\Album::class);
}
答案 3 :(得分:0)
您可能会将$ grid值作为数组访问,但它会返回一个对象。而不是$grids[0]['image']
,请尝试$grids[0]->image
。
如果你正在循环,那么
foreach($grids as $grid) {
echo $grid->image;
}
答案 4 :(得分:0)
调试lazy val myProject = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
后,现在您收到的响应清楚地显示了对象形式的结果,而不是数组。
$grids
那么,如何从对象中获取值:
Array (
[0] => stdClass Object ( [image] => af6a8ce73d995a028422293bdc23774e.png )
[1] => stdClass Object ( [image] => 00204bc5330c4f6b84028d23b6e96c09.png )
[2] => stdClass Object ( [image] => b474b62ca932066ee5ac77094c757e74.png )
[3] => stdClass Object ( [image] => 2c24b205b24bb1b47da90c54e2babfdb.png )
[4] => stdClass Object ( [image] => 2d4b78b29ee5abbe103eed7b6b42cbdb.png )
[5] => stdClass Object ( [image] => 6041a1abb83b18d38918fe9c79309596.jpg ) )