У меня есть часть кода, и я пытаюсь выяснить, почему один вариант работает, а другой – нет.
return View::make('gameworlds.mygame', compact('fixtures'), compact('teams'))->with('selections', $selections);
Это позволяет мне генерировать представление массивов для приборов, команд и выборов, как и ожидалось.
Однако,
return View::make('gameworlds.mygame', compact('fixtures'), compact('teams'), compact('selections'));
не позволяет правильно сформировать представление. Я все еще могу отследить массивы, и я получаю ожидаемые результаты, но представление не отображается после того, как оно поступит в раздел выбора.
Это нормально, потому что я работаю с синтаксисом ->with()
но просто нечетным.
Благодарю. DS
Функция View::make
принимает 3 аргумента, которые в соответствии с документацией:
public View make(string $view, array $data = array(), array $mergeData = array())
В вашем случае compact('selections')
является 4-м аргументом. Это не переходит к представлению, и laravel выдает исключение.
С другой стороны, вы можете использовать with()
столько раз, сколько хотите . Таким образом, это будет работать:
return View::make('gameworlds.mygame') ->with(compact('fixtures')) ->with(compact('teams')) ->with(compact('selections'));
Я просто хотел прыгнуть сюда и исправить (предложить альтернативу) предыдущему ответу ….
Фактически вы можете использовать компактный формат, но, например, очень аккуратно …
return View::make('gameworlds.mygame', compact(array('fixtures', 'teams', 'selections')));
Или если вы используете PHP> 5.4
return View::make('gameworlds.mygame', compact(['fixtures', 'teams', 'selections']));
Это намного опережает и по-прежнему позволяет читать при просмотре того, что делает приложение;)
Я смог использовать
return View::make('myviewfolder.myview', compact('view1','view2','view3'));
Я не знаю, если это потому, что я использую PHP 5.5, он отлично работает 🙂
Route::get('/', function () { return view('greeting', ['name' => 'James']); }); <html> <body> <h1>Hello, {{ $name }}</h1> </body> </html>
или
public function index($id) { $category = Category::find($id); $topics = $category->getTopicPaginator(); $message = Message::find(1); // here I would just use "->with([$category, $topics, $message])" return View::make('category.index')->with(compact('category', 'topics', 'message')); }
лучший способ для меня:
$data=[ 'var1'=>'somthing', 'var1'=>'somthing', 'var1'=>'somthing', ]; return View::make('view',$data);