Bạn thực sự có thể sử dụng chọn AS
mà không sử dụng DB::raw()
. Chỉ cần chuyển một mảng vào phương thức select()
như sau:
$event = Events::select(['name AS title', 'description AS content'])->first();
// Or just pass multiple params
$event = Events::select('name AS title', 'description AS Content');
$event->title;
$event->content;
Đã thử nghiệm ngay bây giờ.
EDIT:
Ngoài ra tôi muốn đề nghị không nên sử dụng một truy vấn DB:raw()
để thực hiện một concat của lĩnh vực mô tả của bạn. Nếu bạn đang sử dụng một mô hình hùng hồn, bạn có thể sử dụng accessors & mutatators để thực hiện điều này cho bạn vì vậy nếu bạn cần một mô tả hạn chế, bạn có thể chỉ cần xuất nó trong chế độ xem của bạn và không phải sử dụng cùng một truy vấn mỗi lần để có được một mô tả hạn chế. Ví dụ:
class Book extends Eloquent
{
public function getLimitedDescriptionAttribute()
{
return str_limit($this->attributes['description'], $limit = 100, $end = '...');
}
}
Theo quan điểm của bạn:
@foreach($books as $book)
{{ $book->limited_description }}
@endforeach
Kết quả ví dụ (không chính xác để hạn chế):
The description of this book is...
EDIT # 2:
Tôi muốn cũng khuyên không nên sử dụng mặt tiền DB vì nó luôn sử dụng kết nối mặc định của bạn. Nếu bạn đang truy vấn kết nối thứ cấp, nó sẽ không tính đến điều này trừ khi bạn chủ động chỉ định nó bằng cách sử dụng:
DB::connection('secondary')->table('hire_bikes')->select(['name as title'])->get();
Nguồn
2014-09-08 14:13:32
Tương đương nguyên của truy vấn 'DB :: '(tiêu đề SELECT, url, hình ảnh, concat (SUBSTRING_INDEX (mô tả, "", 25), "...") Mô tả AS, danh mục FROM hire_bikes ORDER BY RAND() '); ' –
Bạn có thể chỉnh sửa câu hỏi của mình. ;) Bằng cách này, thông thường bạn làm logic như vậy trong mô hình, nếu không bạn sẽ mất đi lợi ích của việc sử dụng thông thạo (là DBMS-thuyết bất khả tri) và bạn có thể truy vấn thô ngay từ đầu, tiết kiệm thời gian cho bạn. – dualed
Truy vấn của nó tôi chỉ cần chạy trên một trang, vì vậy không cần thiết phải ở trong một mô hình, nó không có tham gia hay phụ thuộc vv ... Tôi biết nó dễ dàng thực hiện thông qua truy vấn thô và nhanh chóng, tôi chỉ hy vọng tìm hiểu thêm về các phương thức Fluent và xem liệu có thể chọn nhiều cột mà không chọn tất cả các cột hay không. Lưu loát chỉ xuất hiện để cho bạn có 1 cột HOẶC tất cả các cột, thật đáng tiếc! –