Laravel по-русски

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

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

#1 26.08.2019 16:17:04

Как в контроллере прописать параметры для шаблонизатора

Есть стандартный контроллер RegisterController.
Есть шаблон для него register.blade.
Шаблон расширяется @extends('main'), внутри которого есть переменные, например {{$title}}
Каким образом в контроллере установить эту переменную?

Не в сети

#2 26.08.2019 16:30:52

Re: Как в контроллере прописать параметры для шаблонизатора

Похоже разобрался... Нужно в классе прописать свой вызов

public function callAction($method, $parameters)
    {
        return view('auth/register')->with([
            'title'=>'Заголовок', 
            'description'=>'Описание']);
        
    }

Не в сети

#3 26.08.2019 16:45:47

Re: Как в контроллере прописать параметры для шаблонизатора

Можно так:

    public function index()
    {
        $meta = [
            'title' => 'qwqwqwqw',
            'description' => 'qwqwqwq',
            'keywords' => 'qwqwqwqw',
        ];

        return view('register', $meta);
    }

Не в сети

#4 26.08.2019 16:58:04

Re: Как в контроллере прописать параметры для шаблонизатора

А что за index? Мне переопределить надо стандартный маршрут.

Пока сделал так

public function callAction($method, $parameters)  {

        if($method == 'showRegistrationForm'){
    
            return view('auth/register')->with([
                'title'=>'Заголовок', 
                'description'=>'Описание'
            ]);
    
        }
        else{
            Controller::callAction($method, $parameters);
            return redirect('/');
        }
    }

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

Не в сети

#5 26.08.2019 19:25:15

Re: Как в контроллере прописать параметры для шаблонизатора

Шаблон расширяется @extends('main'), внутри которого есть переменные, например {{$title}}

Из документации:

@extends('layouts.app')

@section('title', 'Page Title')

а в лейауте эту секцию выводишь через @yield.

В доке не нашел, но будет работать и передача через параметры.
Здесь синтаксис @extends такой же точно также как в @include

@extends('master', ['title' => $title])

после чего переменная $title будет определена в master.blade.php

Изменено doublevas (26.08.2019 19:26:35)

Не в сети

#6 27.08.2019 08:07:25

Re: Как в контроллере прописать параметры для шаблонизатора

Здесь синтаксис @extends такой же точно также как в @include@extends('master', ['title' => $title])после чего переменная $title будет определена в master.blade.php

Точно ведь! Причем так думал изначально и казалось что проверил этот вариант.
Спасибо.

Не в сети

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