2014-09-18 1 views
4

Я пытался использовать @forelse в Laravel, но это дает мне эту ошибкуявляется удалением в laravel 4.2.4?

Undefined variable: data 

является @forelse удалить из Laravel 4.2.4? потому что это версия, которую я использую. Это мой код

на мой взгляд

@forelse ($result as $data) 
    <tr><td> $data->name </td></tr> 
@empty 
    <tr><td>No name match</td></tr> 
@endforelse 

в мой контроллер

$result = User::find(1)->get(); 
return View::make('view')->with('result', $result); 

ответ

4

Я не думаю, что @forelse вокруг с Laravel 3. Я могу ошибаться. Я знаю, что он был удален в какой-то момент. Теперь вам нужно использовать стандартные @if и @foreach.

@if (empty($result)) 
    <tr><td>No name match</td></tr> 
@else 
    @foreach ($result as $data) 
    <tr><td> $data->name </td></tr> 
    @endforeach 
@endif 

UPDATE

Как отметил Антонио он был возвращен и доступен в v4.2.7 +, так что вам нужно обновить, если вы хотите.

+0

О, ладно. хмм. потому что при просмотре документации laravel в списке есть форель. большое спасибо – user3779015

+3

Forelse был возвращен в июле: https://github.com/laravel/framework/blame/4.2/src/Illuminate/View/Compilers/BladeCompiler.php#L446 –

+1

Обновился ответ, чтобы включить возрождение 'forelse' и включить версии, где это доступно. –

2

Я нашел то же самое. В видеоролике laracast на Laravel 5 упоминается. Хотя сразу после того, как он объяснил, что более эффективная практика использует if else с функцией count:

@if (count($result)) 
    has result 
@ifelse 
    has no result 
@endif 
+0

Благодарим вас за отзыв. – user3779015