应用\资料
use Illuminate\Database\Eloquent\Model;
class Profile extends Model {
public function scopeApproved($query)
{
return $query->where('approved', 'y');
}
public function vendor()
{
return $this->belongsTo('App\\Vendor');
}
}
-
应用\卖方
use Illuminate\Database\Eloquent\Model;
class Vendor extends Model {
public function profile()
{
return $this->hasOne('App\\Profile');
}
public function products()
{
return $this->hasMany('App\\Product');
}
}
-
应用程序\产品
use Illuminate\Database\Eloquent\Model;
class Product extends Model {
public function vendor()
{
return $this->belongsTo('App\\Vendor');
}
}
使用方法:
$vendors = Vendor::whereHas('profile', function ($q) { $q->approved(); })->with('products')->get();
$products = $vendors->map(function ($vendor)
{
return $vendor->products;
});
这将返回Products
的Collection
一个S的Vendor
s的批准Profile
。
我只需要具有批准的配置文件(批准='y')的供应商需要所有产品(库> 0) – karmendra
@karmendra检查更新后的答案。 – Hkan
感谢您的努力,但是这完全覆盖了我,我要求您解释'如何使用'部分,特别是' - > approved()'和' - > map'。 – karmendra