У меня есть метод отношения для модели, которая имеет условие, основанное на свойстве самой модели.
// ProductController.php
public function show($id, Request $request) {
$product = Product::find($id);
if ($request->exists('optionValues') {
$product->load('optionValues');
}
}
// Product.php
public function optionValues()
{
/// here $this->stock_status_id is null. actually all attributes array is empty.
if ($this->stock_status_id == Stock::CUSTOM_ORDER) {
return $this->hasMany(ProductOptionValue::class, 'product_id', 'product_id')
->where('status', 1);
}
return $this->hasMany(ProductOptionValue::class, 'product_id', 'product_id')
->where('price', '>', 0)
->where('quantity', '>', '0')
->where('status', 1);
}
но кажется, что когда Laravel загружает отношение, все свойства равны нулю. и $this->stock_status_id
для текущей модели - ноль, и я не могу проверить условие.
Есть ли способ обойти эту проблему?