Khi sử dụng ORX của Eloquent của Laravel, dường như tôi không thể đặt thuộc tính $ hidden và $ visible trên Mô hình của mình theo kiểu động.Laravel/Eloquent - Các thuộc tính ẩn/hiển thị được tải xuống
Ví dụ 1: Đây hoạt động:
class User extends Eloquent {
$this->visible = array('field_name');
function read()
{
return User::all();
}
}
Ví dụ 2: Thiết lập thuộc tính có thể nhìn thấy trên lớp hùng biện tự động, không hoạt động:
class User extends Eloquent {
function read($visible = array('field_name'))
{
$this->visible = $visible; // Also tried: $this->setVisible($visible);
return User::all();
}
}
Ví dụ 3: Giải pháp hoạt động trên Bản thân mô hình, nhưng không hoạt động trên các Mô hình được háo hức nạp:
class User extends Eloquent {
function read($visible = array('field_name'))
{
$users = User::all();
return $users->get()->each(function($row) use ($visible) {
$row->setVisible($visible);
});
}
}
Để đặt thuộc tính $ có thể nhìn thấy động trên Mô hình được tải trọng, tôi không thấy giải pháp nào khác ngoài việc làm cho Ví dụ 2 hoạt động. Nhưng bằng cách nào?
Tôi gặp cùng một vấn đề .. Were bạn đã bao giờ có thể tìm thấy một giải pháp? – ipengineer
Không, vẫn không. –
Tôi chỉ làm việc này bằng cách thực hiện một -> select() trên các phương thức bên trong mô hình của tôi. http://stackoverflow.com/questions/16994253/laravel-eager-loading-load-only-specific-columns – ipengineer