應用\資料
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