Laravel по-русски

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

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

#126 Re: Laravel 5.x » Передача переменной из шаблона в роутер с предварительной обработкой » 19.09.2018 20:54:34

Вернее немного не так , но все равно по такому же принципу .

<a href="{{ action('DepartmentController@index',['department' => str_slug($dep->name)]) }}">
{{$dep->name}}
</a>

P.S Слава Laravel !!! lol

#127 Re: Laravel 5.x » Передача переменной из шаблона в роутер с предварительной обработкой » 19.09.2018 20:14:49

Спасибо. Тема закрыта . Может я все таки не правильно поставил вопрос , но проблему решил таким способом , надеюсь он правильный.

<a href="{{URL::asset('/'). str_slug($dep->name,'-')}}">

Еще раз спасибо и извиняюсь за беспокойство.
P.S Если что сделано криво , то прошу прокомментировать и предложить правильный вариант.

#128 Laravel 5.x » Передача переменной из шаблона в роутер с предварительной обработкой » 19.09.2018 12:56:24

DzonyBB
Ответов: 2

Привет всем , возник еще один вопрос , как передать переменную из шаблона в роутер , но предварительно обработав ее функцией.
Например : Имеется шаблон с каталогом товаров , при клике по товару в get передается переменная которая имеет значение например Зимние шапочки . При передаче в get запрос в браузере соответсвенно отображается Зимние%20шапочки . Как обработать эту переменную перед передачей в роут ?
Строка запроса должна выглядеть так http://localhost/larevel/зимние-шапочки
Или ссылку где это обсуждалось . Спасибо .
Надеюсь вопрос поставил правильно.

#130 Re: Laravel 5.x » Как привязать контроллер к шаблону » 16.09.2018 21:53:06

В принципе вторая переменная и не нужна , обошелся одной не знаю насколько криво. smile

	public function compose(View $view)
	{
		$view->with('department', Department::where('stat',0 )
			->orderBy('department_id')->get());

		$view->with('category', Category::orderBy('name')->get());
	}

#131 Re: Laravel 5.x » Как привязать контроллер к шаблону » 16.09.2018 21:06:23

Че то я туплю совсем . а как передать в composer не одну , а две переменные .Пробую таким методом , выбивает ошибку в месте обьявления массива. Опять же в описании не нашел ответа. Прошу тыкнуть носом.

    public $data=array($departments,$categories);
	
	public function compose(View $data)
	{
         $departments->with('department', Department::where('stat',0 )
			->orderBy('department_id')->get());
			
	  $categories->with('category', Category::orderBy('name')->get());
	}

#132 Re: Laravel 5.x » Как привязать контроллер к шаблону » 15.09.2018 16:59:28

Начинал с 5.4 версии Laravel, там еще не было View Composer.

я установил 5.6. ОК! Если получится. отпишусь. wink

#133 Re: Laravel 5.x » Как привязать контроллер к шаблону » 14.09.2018 17:40:55

Я бы через виджеты сделал

   Сорри , вся проблема в том , что я Laravel только осваиваю , до этого работал со Smarty , но Laravel мне пока нравится больше, просто нужно вникнуть . Поэтому с удовольствием рассмотрю все полезные советы. Извиняюсь за тупость , про виджеты нельзя ли немного поподробнее ??? Про composer вроде как нашел информацию. Спасибо.
P.S Прошелся по ссылке , надеюсь разберусь . Но хотелось бы если можно достоинства и недостатки обоих из методов.
    Так как в этой книШке LARAVEL тоже описывается view composer .
Спасибо .

#134 Re: Laravel 5.x » Как привязать контроллер к шаблону » 14.09.2018 07:14:12

Спасибо за ответ . Я обязательно пройдусь по ссылкам . В кратце я уже описал что я хочу . На странице имеется подшаблон Категория товаров например . Мне нужно из таблицы Category например выбрать категории и передать массив в этот подшаблон. Как это лучше реализовать? Может есть ссылка на пример , где эта тема обсуждалась? Спасибо.

#135 Re: Laravel 5.x » Как привязать контроллер к шаблону » 13.09.2018 19:07:30

Братья славяне , я так и не понял , или вопрос слишком сложный , или слишком тупой. smile))
   Или я не правильно осветил ситуацию????
Тогда я поставлю вопрос по-другому , мне нужно из таблиц в базе данных сделать выборку категорий , и соответствующих им подкатегорий , и передать в шаблон страницы. Все это я сделал при помощи Route и Controller , но меню появляется на странице естесственно , когда я выбираю в меню например каталог товаров, но если я перехожу на другую вкладку , оно естесственно пропадает. А мне нужно чтобы оно постоянно находилось на странице независимо от выбранного маршрута. Спасибо.
P.S В Smarty этот скрипт PHP привязывается примерно так.

{* admin_menu.tpl *}
{load_presentation_object filename="admin_menu" assign="obj"}

<h1 class="admin_menu_title"> Administratoriaus meniu </h1>
<p class="admin_menu"> |
  <a href="{$obj->mLinkToStoreAdmin}">Catalog Admin</a> |
  <a href="{$obj->mLinkToCartsAdmin}">Carts Admin</a> |
  <a href="{$obj->mLinkToOrdersAdmin}">Orders Admin</a> |
  <a href="{$obj->mLinkToStoreFront}">Pagrindinis</a> |
  <a href="{$obj->mLinkToLogout}">Logout</a> |
</p>

#136 Re: Laravel 5.x » Как привязать контроллер к шаблону » 13.09.2018 12:48:42

Вот контроллер

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Department;
use App\Category;
//use App\Http\Requests\CategoryRequest;
//use App\Subcategory;
//use App\Article;

class DepartmentController extends Controller
{
	 protected $layout = 'departments.department';
	
	public function department()
	{
		$department = Department::where('stat',0 )->
		  orderBy('department_id')->get();
		  
	     $category =Category::orderBy('category_id')->get();	
		
	  	return view("departments.departments",['department'=>$department,'category'=>$category]);
	}
}

  А вот подшаблон

  @extends(request()->route()->getController()->parentView)

@section('departments')

<div class="container-fluid forms_container">
	<ul>
		@foreach ($department as $dep)
		<li>
			{{$dep->name}}
			<ul>
				@foreach ($category as $cat)

				@if($dep->department_id===$cat->department_id)
				<li>
					{{$cat->name}}
				</li>
				@endif

				@endforeach
			</ul>
		</li>
		@endforeach
	</ul>
</div>
@endsection

#137 Laravel 5.x » Как привязать контроллер к шаблону » 13.09.2018 12:37:04

DzonyBB
Ответов: 11

Добрый день , собственно вопрос по сабжу в книШках и инете пока ответа не нашел. Я включаю в шаблон подшаблон при помощи @include . Как мне к этому подшаблону прописать маршрут к контроллеру ??? Если делаю через Route и  @yield('content') то все работает. Но я хочу чтобы подшаблон всегда отображался в левой части контента например , независимо от выбранного маршрута. А контроллер нужен для выборки данных из базы. Надеюсь я правильно поставил вопрос.
А может я иду не по тому пути , прошу подсказать правильное решение. Спасибо.

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