Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 23.07.2013 11:20:01

WebMax
Откуда: Липецк
Сообщений: 23

Передача аргументов в Closure function в переменной.

Пример из оф. документации:

$logic = function() {
     return 'Hello world!';
}

Route::get('my/page', $logic);

Вопрос: как в функцию передать аргумент из маршрута ?

Задача: В функцию передавать название вьюшки, а функция возвращает главный макет с привязкой макета с переданным именем.

Т.е. вместо

Route::get('/', function()
{
	return View::make('common.container')->nest('content', 'index');
});

Писать

Route::get('/', $static_content);   <---- и ещё как-то передать название макет в функцию.

Изменено WebMax (23.07.2013 11:20:36)

Не в сети

#2 23.07.2013 11:31:39

Re: Передача аргументов в Closure function в переменной.

PHP
function makeClosure($view) {
  return function () use (
$view) {
    return 
View::make('common.container')->nest('content'$view);
  };
}

$logic makeClosure('index');
// ...

Не в сети

#3 23.07.2013 11:46:44

WebMax
Откуда: Липецк
Сообщений: 23

Re: Передача аргументов в Closure function в переменной.

Немного не то. Используя Ваш подход мне придется для каждого шаблона переназначать переменную $logic, а хотелось бы передавать в Closure название шаблона сразу при объявлении маршрута.

Как пример:

Route::get('/', $logic, 'index') 

т.е. при объявлении маршрута передаем название шаблона, $logic содержит в себе Closure, 'index' - название шаблона.
Извиняюсь, если вопросы глупые!

Изменено WebMax (23.07.2013 11:59:30)

Не в сети

#4 23.07.2013 12:06:27

WebMax
Откуда: Липецк
Сообщений: 23

Re: Передача аргументов в Closure function в переменной.

Вопрос снят. Разобрался. Спасибо за помощь!

Не в сети

#5 23.07.2013 12:40:45

Re: Передача аргументов в Closure function в переменной.

  1. Вопрос снят. Разобрался. Спасибо за помощь!

Это хорошо, но другим участникам было бы полезно увидеть решение.

Не в сети

#6 23.07.2013 12:46:08

WebMax
Откуда: Липецк
Сообщений: 23

Re: Передача аргументов в Closure function в переменной.

А решение Вы предоставили. Только использовал я функцию без переменной.

function makeClosure($view) {
  return function () use ($view) {
    return View::make('common.container')->nest('content', $view);
  };
}

Route::get('/', makeClosure('index'));

Не в сети

Подвал раздела