Laravel по-русски

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

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

#1 Re: Laravel 6/7/8/9/10 » Не срабатывает политика в шаблоне blade » 27.04.2020 13:44:41

Выяснил в чем проблема.
Я передавал не объект нужной модели.

Т.е. в $review у меня была смешанная коллекция.

Вопрос закрываю.

#2 Re: Laravel 6/7/8/9/10 » Проблема с реализацией маршрутов с несколькими параметрами » 23.04.2020 15:17:37

Ваш метод _sql_all ожидает две переменные. А вы передаете одну переменную.
Что касается роутов, то там можно передавать сколько угодно параметров. И в методе их получать через запятую.

#3 Laravel 6/7/8/9/10 » Не срабатывает политика в шаблоне blade » 23.04.2020 14:59:33

barmaley
Ответов: 1

Добрый день.
Написал нужную политику.
Она срабатывает в middleware и в контроллере.

А вот в шаблоне не работает. Попробовал оба варианта:

@can('review_published', $review)
 Есть
@endcan
@if (Auth::user()->can('review_published', $review))
 Текущий Пользователь Может Редактировать Статью
@endif

Код самой политики упростил для теста:

public function review_published(User $user, Review $review)
{
echo 'sdf';
return true;
}

В чем может быть дело?

#4 Re: Laravel 6/7/8/9/10 » Laravel 6. Не работают конструкции {{ }} в include представлениях » 24.12.2019 17:22:51

artoodetoo

Точно! Не указал в файле .blade.
Файл переименовал и все заработало.
Спасибо!

#5 Re: Laravel 6/7/8/9/10 » Laravel 6. Не работают конструкции {{ }} в include представлениях » 24.12.2019 10:36:49

Убрал. Не помогло (
Ну, и вообще шаблон привел вот к такому виду:

<div>
    {{ time() }}
</div>

Выводится, просто:
{{ time() }}

#6 Re: Laravel 6/7/8/9/10 » Laravel 6. Не работают конструкции {{ }} в include представлениях » 24.12.2019 10:06:04

Да, без проблем. Но сам шаблон еще не доделан:

<form>
    <div class="form-group">
        <label for="nameInput">Название</label>
        <input type="email" class="form-control" id="nameInput" aria-describedby="nameHelp" placeholder="Название произведения">
        <small id="emailHelp" class="form-text text-muted">Желатеьно коротко и ёмко.</small>
    </div>
    <div class="form-group">
        <label for="elements_string">Ваша первая строка</label>
        <input type="text" class="form-control" id="elements_string" name="elements_string" placeholder="Начнем, пожалуй!">
    </div>
    <div class="form-group">
        <label class="form-check-label" for="genres">Жанр</label>
        <select name="genre">
            <option>-- жанр --</option>

            @foreach ($genres as $genre){
                <option> {{ $genre->name }}  </option>
            @endforeach

        </select>

    </div>
    <button type="submit" class="btn btn-primary">Записать</button>
</form>

Такой должен быть код. Здесь не работает:  {{ $genre->name }} .
И @foreach тоже не работает. Но, @foreach не выводится. Просто не срабатывает.
А {{ $genre->name }} - прям так и выводится. И любые другие переменные, которые я пробую тоже так выводятся.

#7 Laravel 6/7/8/9/10 » Laravel 6. Не работают конструкции {{ }} в include представлениях » 23.12.2019 23:40:15

barmaley
Ответов: 7

Подскажите, пожалуйста, в чем может быть дело.

Подключаю  Blade-представление вот так:
@include('partials.form_element', ['genres' => 'sfd'])

Сам файл partials/form_element.blade.php подключается. Текст весь выводится.
Но, все что в фигурных скобках - так и выводится. Т.е. выводятся и сами фигурные скобки.

Т.е. вижу на странице вот это:

{{ $genres }}

Или вот это:

{{ time() }}

Т.е. функция time() не сработала. А просто вывелась в фигурных скобках.

Если же делаю так:

<?php
echo $genres;
?>

То работает.

При чем у родительского шаблона все работает.

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