如何查看相册中的图像
How to view the images in an album
我有3个表images, albums, 和murs,我想查看每个相册的图片,根据murs_id的引用,也就是murs的id。
图片:
ID
albums_id
图片
专辑:
ID
姓名
图片
murs_id
杂音:
ID
滴度
$grids = DB::table('images')
->select(['image']);
$grids->join('albums','images.albums_id','=','albums.id');
$grids->where('albums.murs_id','=','12');
$grids= $grids->get();
I get this error message : Cannot use object of type stdClass as
array.
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 )
)
试试这个:
$grids = DB::table('images')
->select('images.image')
->join('albums','images.albums_id','=','albums.id')
->where('albums.murs_id','=','12')
->get();
您的错误出现在稍后使用 $grids 的某个地方。使用此代码,您会收到 PHP stdClass 对象,您不能对其执行 ->first() 之类的操作。
您可以像这样将其包装在一个集合中:
$grids= collect($grids->get());
我建议您使用 eloquent relationships 作为查询数据库。如果你已经正确设置关系那么你可以写成:
$grids = Image::whereHas('album', function($q) {
$q->where('murs_id', 12);
})->get()
要使用 Image
和 Album
之间的关系,请在 Image
class 中添加一个 album()
函数,如:
Image.php
public function album()
{
return $this->belongsTo(App\Album::class);
}
您可能正在以数组形式访问 $grid 值,但它返回的是一个对象。尝试 $grids[0]->image
.
而不是 $grids[0]['image']
如果你在循环,那么
foreach($grids as $grid) {
echo $grid->image;
}
调试 $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 ) )
那么,如何从对象中获取值:
<?php
foreach ($grids as $value) {
echo $value->image."<br/>"; // will print all images
}
?>
我有3个表images, albums, 和murs,我想查看每个相册的图片,根据murs_id的引用,也就是murs的id。
图片: ID albums_id 图片
专辑: ID 姓名 图片 murs_id
杂音: ID 滴度
$grids = DB::table('images')
->select(['image']);
$grids->join('albums','images.albums_id','=','albums.id');
$grids->where('albums.murs_id','=','12');
$grids= $grids->get();
I get this error message : Cannot use object of type stdClass as array.
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 )
)
试试这个:
$grids = DB::table('images')
->select('images.image')
->join('albums','images.albums_id','=','albums.id')
->where('albums.murs_id','=','12')
->get();
您的错误出现在稍后使用 $grids 的某个地方。使用此代码,您会收到 PHP stdClass 对象,您不能对其执行 ->first() 之类的操作。
您可以像这样将其包装在一个集合中:
$grids= collect($grids->get());
我建议您使用 eloquent relationships 作为查询数据库。如果你已经正确设置关系那么你可以写成:
$grids = Image::whereHas('album', function($q) {
$q->where('murs_id', 12);
})->get()
要使用 Image
和 Album
之间的关系,请在 Image
class 中添加一个 album()
函数,如:
Image.php
public function album()
{
return $this->belongsTo(App\Album::class);
}
您可能正在以数组形式访问 $grid 值,但它返回的是一个对象。尝试 $grids[0]->image
.
$grids[0]['image']
如果你在循环,那么
foreach($grids as $grid) {
echo $grid->image;
}
调试 $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 ) )
那么,如何从对象中获取值:
<?php
foreach ($grids as $value) {
echo $value->image."<br/>"; // will print all images
}
?>