2016-09-19 6 views
1

В моих маршрутов у меня есть:Laravel контроллер компактный не работает

Route::get('/about','[email protected]'); 

В PagesController:

public function about() 
{ 
    $people=['Taylor','Matt','Jeffrey']; 
    return view('pages.about',compact($people)); 
} 

, если я использую

return view('pages.about',['people'=> $people]); 

Он работает нормально.

Контроллер не передает массив для просмотра, почему?

+1

'компактных ('человек')' – tkausl

+0

http://stackoverflow.com/a/22413121/6521116 –

ответ

1

Использование compact('people')

Если вы новичок чекаут laracasts видеоряд, чтобы получить хорошее представление о рамках Laravel.

2

Удалить $ знак внутри compact функция compact('people'). Это решит вашу проблему.

compact() не является функцией Laravel. Это функция PHP. Он создает массив, содержащий переменные и их значения.

Например, предположим, что у вас есть следующие переменные.

$name = 'Jon Snow'; 
$dad = 'Rhaegar Targaryen'; 
$mom = 'Lyanna Stark'; 

Если поставить тех, кто в compact() следующим образом,

$thePrinceThatWasPromised = compact(['name', 'dad', 'mom']); 

Вы получите следующий массив присваивается $thePrinceThatWasPromised.

[ 
    'name' => 'Jon Snow', 
    'dad' => 'Rhaegar Targaryen', 
    'mom' => 'Lyanna Stark' 
] 

Для получения дополнительной информации перейдите к php manual

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