Вы можете сделать это, переопределив метод get()
внутри построителя запросов в \Illuminate\Database\Query\Builder
, пример этого переопределения представлен в этом среднем посте .Но в вашем случае кажется, что вы хотите переопределить его только при использовании против модели OrderStatuses
.
Хорошей новостью является то, что класс Builder
имеет ссылку на таблицу :
/**
* The table which the query is targeting.
*
* @var string
*/
public $from;
, которая установлена здесь:
/**
* Set the table which the query is targeting.
*
* @param string $table
* @return $this
*/
public function from($table)
{
$this->from = $table;
return $this;
}
так что вы можете сделать что-то вроде этого:
namespace App\Override;
class QueryBuilder extends \Illuminate\Database\Query\Builder {
//@Override
public function get($columns = ['*']) {
if ($this->from == 'OrderStatus') {
// customize the call
} else {
//Return default
return parent::get($columns);
}
}
}