У меня есть модель под названием Book
, и я хочу добавить дополнительный столбец к SQL по умолчанию.Eloquent model add extra column по умолчанию
В настоящее время SQL по умолчанию выглядит следующим образом:
SELECT * FROM `books`
Но я хочу SQL по умолчанию, чтобы выглядеть следующим образом:
SELECT *, "Hello" as `greeting` FROM `books`
Так что я могу сделать следующее:
// in a controller function...
$book = Book::find(1);
echo $book->greeting; // Hello
$books = Book::all();
foreach($books as $book){
echo $book->greeting; // Hello
}
Есть ли способ достичь этого?
Большое спасибо
Почему вы просто не добавляете это к самому определению класса, а не притворяетесь, что это происходит из SQL динамически? Похоже, вы, по сути, должны скрывать собственность от того места, где она должна быть действительно определена. –
Это упрощенный пример. То, что я пытаюсь сделать, - это добавить новый атрибут 'score' для моей модели. Атрибут 'score' рассчитывается как сумма голосов в другой таблице. Полученный SQL-код довольно сложный, и я не хотел его отвлекать от вопроса, а именно, как добавить дополнительные столбцы SQL в запрос по умолчанию модели. –
Почему бы вам тогда не связать модель книги с моделью оценки для этой цели? Возможно, вы также получите гораздо более релевантные ответы на ваш фактический случай использования, если вы действительно объяснили этот случай использования в своем вопросе. –