我如何加入 Eloquent: 关系?
How can I join with Eloquent: Relationships?
我的查询是这样的:
<?php
public function getListReviews()
{
$reviews = Review::where('user_id', auth()->user()->id)
->get();
return $reviews;
}
从查询中,可以通过id得到所有review数据
我要获取用户照片、店铺照片和产品照片
我想使用 Eloquent:关系
如何通过 Eloquent: 关系获得它?
我的评论模型是这样的:
<?php
namespace App;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
use Jenssegers\Mongodb\Eloquent\HybridRelations;
class Review extends Eloquent
{
use HybridRelations;
protected $connection = 'mongodb';
protected $fillable = ['user_id', 'user_name', 'product_id', 'product_name', 'store_id', 'store_name', 'invoice_number', 'rating', 'comments', 'created_at', 'updated_at'];
public function user()
{
return $this->belongsTo(User::class);
}
}
我的用户模型是这样的:
<?php
namespace App;
...
class User extends Authenticatable
{
...
protected $fillable = ['name', 'email', 'password', 'birth_date', 'mobile_number', 'photo'];
public function store()
{
return $this->hasOne(Store::class);
}
}
我的店铺模型是这样的:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Store extends Model
{
protected $fillable = ['user_id', 'name', 'address', 'phones', 'total_product', 'photo'];
public function products()
{
return $this->hasMany(Product::class);
}
}
我的产品型号是这样的:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
protected $fillable = ['store_id','category_id','name', 'photo','description'];
public function store()
{
return $this->belongsTo(Store::class);
}
}
如果您想从评论模型中找出产品和商店,请向 Review
模型添加两个方法,如下所示。
编辑App\Review.php
//You already have key to to find store i.e. store_id
public function store()
{
return $this->belongsTo(Store::class);
}
//You already have key to to find product i.e. product_id
public function product()
{
return $this->belongsTo(Product::class);
}
然后按如下方式执行查询
$reviews = Review::where('user_id', auth()->user()->id)
->with('store')
->with('product')
->with('user')
->get();
您可以按如下方式访问它们,
遍历 $reviews
对象作为 $review
$review->store->photo;
$review->product->photo;
$review->user->photo;
我的查询是这样的:
<?php
public function getListReviews()
{
$reviews = Review::where('user_id', auth()->user()->id)
->get();
return $reviews;
}
从查询中,可以通过id得到所有review数据
我要获取用户照片、店铺照片和产品照片
我想使用 Eloquent:关系
如何通过 Eloquent: 关系获得它?
我的评论模型是这样的:
<?php
namespace App;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
use Jenssegers\Mongodb\Eloquent\HybridRelations;
class Review extends Eloquent
{
use HybridRelations;
protected $connection = 'mongodb';
protected $fillable = ['user_id', 'user_name', 'product_id', 'product_name', 'store_id', 'store_name', 'invoice_number', 'rating', 'comments', 'created_at', 'updated_at'];
public function user()
{
return $this->belongsTo(User::class);
}
}
我的用户模型是这样的:
<?php
namespace App;
...
class User extends Authenticatable
{
...
protected $fillable = ['name', 'email', 'password', 'birth_date', 'mobile_number', 'photo'];
public function store()
{
return $this->hasOne(Store::class);
}
}
我的店铺模型是这样的:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Store extends Model
{
protected $fillable = ['user_id', 'name', 'address', 'phones', 'total_product', 'photo'];
public function products()
{
return $this->hasMany(Product::class);
}
}
我的产品型号是这样的:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
protected $fillable = ['store_id','category_id','name', 'photo','description'];
public function store()
{
return $this->belongsTo(Store::class);
}
}
如果您想从评论模型中找出产品和商店,请向 Review
模型添加两个方法,如下所示。
编辑App\Review.php
//You already have key to to find store i.e. store_id
public function store()
{
return $this->belongsTo(Store::class);
}
//You already have key to to find product i.e. product_id
public function product()
{
return $this->belongsTo(Product::class);
}
然后按如下方式执行查询
$reviews = Review::where('user_id', auth()->user()->id)
->with('store')
->with('product')
->with('user')
->get();
您可以按如下方式访问它们,
遍历 $reviews
对象作为 $review
$review->store->photo;
$review->product->photo;
$review->user->photo;