2014-09-19 10 views
0

Я хочу повторно использовать laravel elequent data. Я не знаю, что этот вопрос имеет смысл. поэтому я объясню, используя следующую кодировку. Я хочу получить некоторые данные, используя следующую кодировку.laravel filter elequent data by where clause или reuse elequent data

$pending = Case::where('user_id', $id)->where('status', 0)->paginate(20); 
$approved = Case::where('user_id', $id)->where('status', 1)->paginate(20); 

, но я думаю, что это не эффективный способ. поэтому я использую bellow codding вместо кода выше. Первый раз получить родительские данные в переменную.

$cases = Case::where('user_id', $id); 

после попытки фильтровать дочерние данные из переменной выше, используя предложение where.

$pending = $cases->where('status', 0)->paginate(20); 
$approved = $cases->where('status', 1)->paginate(20); 

после выполнения $ pending имеет правильные данные. но $ одобрен не так, как я желаю. Как я могу это сделать. Благодарю.

+0

Ничего неэффективного, о котором можно беспокоиться. –

ответ

1

$cases->where(...) добавляет предложение where к запросу, но оно не выполняется, пока вы не вызываете paginate (или get и другие функции, которые используют результат).

Ваш $approved запрос поэтому в основном имеет WHERE status=0 AND status=1, который никогда не будет работать.

Вы можете попробовать скопировать $cases в другую переменную (т. Е. $approvedCases = $cases;), но вам, вероятно, будет лучше с исходным кодом.

Смежные вопросы