実際には、を使用AS
せずにselectを使用できますDB::raw()
。select()
次のように、配列をメソッドに渡すだけです。
$event = Events::select(['name AS title', 'description AS content'])->first();
// Or just pass multiple parameters
$event = Events::select('name AS title', 'description AS Content');
$event->title;
$event->content;
私はそれをテストしました。
また、DB:raw()
クエリを使用して説明フィールドの連結を実行しないことをお勧めします。雄弁なモデルを使用している場合は、アクセサーとミューテーターを使用してこれを実行できるため、限定された説明が必要な場合は、ビューに出力するだけで、毎回同じクエリを使用して取得する必要はありません。限定的な説明。例えば:
class Book extends Eloquent
{
public function getLimitedDescriptionAttribute()
{
return str_limit($this->attributes['description'], $limit = 100, $end = '...');
}
}
あなたの見解では:
@foreach($books as $book)
{{ $book->limited_description }}
@endforeach
出力例(制限するのは正確ではありません):
The description of this book is...
また、DBファサードは常にデフォルトの接続を利用するため、使用しないことをお勧めします。セカンダリ接続をクエリしている場合、次を使用してアクティブに指定しない限り、これは考慮されません。
DB::connection('secondary')->table('hire_bikes')->select(['name as title'])->get();
select AS(name AS title
)を使用してモデルを更新する場合でも、データベース列と一致する適切な属性名を設定する必要があることに注意してください。
たとえば、title
列がデータベーステーブルに存在しないため、これにより例外が発生します。
$event = Events::select('name AS title')->first();
$event->title = 'New name';
$event->save(); // Generates exception, 'title' column does not exist.