Laravel по-русски

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

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

#1 Re: Laravel 6/7/8 » Изображение в сообщении » 13.10.2020 15:37:50

Сообщение в мессенджере или в теме форума это html в котором может быть вставлена картинка в <img>.
Начни с изучения HTML + CSS

#2 Re: Laravel 6/7/8 » Переадресация на предыдущую страницу после авторизации » 12.10.2020 09:02:25

intended() именно то, что нужно. если не работает, в отладчике проверь присуствует ли ключ url.intended в сессии.
по идее, мидлварь которая проверяет авторизацию пользователя, сохраняет там адрес назначения.

#4 Re: Laravel 5.x » Перенос копии на другой домен » 04.10.2020 15:37:33

sergdsv ты асболютно прав. Единственное что приходит в голову почему топикстартер мог бы захотеть такой странной структуры: возможно он не может или не знает как настроить новый виртуальный хост, а "админка" хостинга предлагает только вот такие ущербные варианты. Я бы начал со смены хостинга / отказа от админки как таковой.

#5 Re: Общий раздел » Composer Windows » 28.09.2020 13:26:25

Вангую, что ты однажды запустил что-то, создающее файлы как админ. С тех пор у тебя эти файлы принадлежат админу и как простой юзер ты их изменять/заменять не можешь. В этом проблема.
Нет, так НЕ задумано. Это результат твоих собственных действий.

#6 Re: Laravel 5.x » Валидация большого количества одинаковых полей » 25.09.2020 10:42:54

если имена полей будут массивом, т.е. на фронте будут все иметь имя question-title[] и question-desc[] и на беке будут автоматически приводитсья к массив, то валидировать их можно как

[
'question-title'   => 'array',
'question-title.*' => 'string|max:60',
...

https://laravel.com/docs/8.x/validation … ing-arrays

#8 Re: Laravel 5.x » Текущий роут или контроллер » 22.09.2020 15:34:41

А как это реалезовано не используя замыкание? Если не секрет.

Во-первых, я не говорил, что замыкания там нет (хотя его там правда нет). Во-вторых, без разницы замыкание там или ссылка на экшен. Важно что с т.з. ларавель у тебя только один маршрут, который берёт на себя все запросы, что не были подобраны до него. Уже внутри этого дефолтового экшена происходят какие-то вычисления на базе URL и управление передаётся в другие контроллеры. То есть самописная маршрутизация поверх стандартной. Ларавелевский пайплайн с мидлварами уже не участвует в нём. Понимаешь о чём я? Видимо нет, т.к. ты мыслишь категориями Yii.

#9 Re: Laravel 5.x » Текущий роут или контроллер » 22.09.2020 07:41:08

Не уж то никто такого не делал?

Я работаю в проекте где подобное есть, но от такого подхода уже отказались. Оно существует как легаси, мы вынуждены эту версию поддерживать пока она не будет полностью вытеснена новой.

Почему было когда-то сделано: якобы для оптимизации. На самом деле нет, это не оптимизация, т.к. кешированные маршруты работают быстро, а "динамический роутинг" в принципе не кешируется. Другая причина была в якобы простоте поиска экшенов. По мере роста оказалось что минусы перевешивают один хилый плюс.

Причина нелюбви: неудобство в организации роут мидлваре. Чем больше эндпоинтов, тем важнее становятся мидлвары доступа. Когда у тебя перед глазами классический ларавелевский файл маршрутов с группами, то вся логика доступа перед глазами. Да, *ля, он большой, очень большой. Но он читабельный, понятный. А "динамический роутинг" заставляет тебя помещать контроль доступа в контроллер и чтобы проверить его надо в каждый контроллер залезть.
Много дублирующего кода. Изменение в политике доступа приводит к необходимости переписывать массу файлов.

Итого: овчинка выделки не стоит. Экономия букв это хреновая оптимизация.

#10 Re: Laravel 6/7/8 » Laravel + pusher не работает на рабочем сервере » 16.09.2020 08:04:35

Я бы дважды проверил .env на продакшене. Кроме того, сделал бы php artisan config:clear и php artisan cache:clear

Про время: проверь часовой пояс. просто вызови в консоли date

#11 Re: Вакансии » Создать интернет-магазин по доставке цветов под ключ » 15.09.2020 15:54:46

Цена - нижняя планка. А эстимейт от оптимистической оценки до пессиместической.
Чётко я понимаю, что вы не подпишетесь под этим. smile Но вам наверное нужны ориентиры, вот они.

#12 Re: Laravel 5.x » Текущий роут или контроллер » 15.09.2020 08:49:55

Когда-нибудь ты захочешь использовать именованные маршруты или рут миддлвары и обнаружишь, что Ларавель опять не хочет тебе помогать, по той же причине: маршрут у тебя всего один в терминах Ларавель.
Такой маршрут-на-все-случаи не может быть кеширован средствами Ларавель.
Отказываясь от стандартов ты берёшь на себя ответственность за последствия.

#13 Re: Laravel 5.x » Текущий роут или контроллер » 15.09.2020 08:41:49

Ты конечно можешь делать как тебе нравится, речь о том, что с т.з. Ларавель твой контроллер это замыкание. Ты отошел от стандартного поведения и теперь ты сам творец своего счастья. Сделай функцию с параметрами контроллер и экшн, пусть она сохраняет их куда-то и потом инстанциирует контроллер.

#15 Re: Laravel 5.x » Текущий роут или контроллер » 14.09.2020 12:30:46

  1. система же знает какой котнроллер и акшен

Нет. Она знает, что текущему маргруту сопоставлено замыкание. Если ты думал, что объект Маршрут бежит по стеку вызовов и проверяет не является ли нечто контроллером: знай, это не так )

  1. не свое, а подибие правила которое в yii идет из коробки

То есть городишь своё. Ты повелитель сего. Отвелл снимает с себя ответственность. ☺

#16 Re: Laravel 5.x » Текущий роут или контроллер » 14.09.2020 05:23:33

Не знаю чем тебе помочь. Ты сам провоцируешь ошибку. Что ты хотел получить в качестве имени, когда использовал замыкание?
Фактически, ты отказался от стандартной маршрутизации, что-то городишь своё.

#17 Re: Laravel 5.x » Текущий роут или контроллер » 12.09.2020 09:01:04

Теперь это уже не "родительский", а "фронт-контроллер" )

В 100% случаев когда пишут про встроенную или библиотечную функцию что "она не работает", дело оказывается в том, что её неправильно используют.

Читаем про метод getController(): Get the controller instance for the route.
Инстанс! Он возвращает указатель на объект контроллера. Не имя, а объект. Если тебе нужно получить из него имя класса, то примени еще одну функцию: get_class()


Я не поленился и создал тестовый проект 5.8 с таким роутом и контроллером:

Route::get('/test', 'BaseController@routeInfo')->name('test');
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class BaseController extends Controller
{
    public function routeInfo()
    {
        $route = request()->route();
        return [
            'getController'   => get_class($route->getController()),
            'getName'         => $route->getName(),
            'getActionName'   => $route->getActionName(),
            'getActionMethod' => $route->getActionMethod(),
        ];
    }
}

Вот результат:

getController: "App\\Http\\Controllers\\BaseController"
getName: "test"
getActionName: "App\\Http\\Controllers\\BaseController@routeInfo"
getActionMethod: "routeInfo"

Можно унаследовать новый контроллер от BaseController и обращаться к $this->routeInfo(), будет корректная информация о текущем маршруте. Прочто читай доки внимательно, никакой сложности и "багов" здесь нет.

#18 Re: Laravel 5.x » Текущий роут или контроллер » 11.09.2020 18:05:35

Возвращаемся к началу: что ты хочешь получить? Не надо писать "роут". Маршрут это объект, ты можешь его получить как request()->route(), например. Но ты наверное хочешь имя или путь. Что именно?

Что значит "родительский контроллер"? Мы к тебе в голову не можем залезть, будь добр(а) объяснить что это и почему посчитал(а) важным это упомянуть в вопросе.

Читать: https://laravel.com/docs/7.x/routing

#20 Re: Laravel 5.x » Текущий роут или контроллер » 11.09.2020 13:41:20

А что тебе нужно и какой именно креш происходит в каком случае? smile

Route::currentRouteName()

#21 Re: Laravel 6/7/8 » Как сделать удаление картинок чтоб они удалялись? » 08.09.2020 17:12:03

Он знает про прокси, чисто технически от него нет спасения smile Но его легко узнать "по почерку". Как говорится, уши всегда вылазят.

#22 Re: Laravel 6/7/8 » Как сделать удаление картинок чтоб они удалялись? » 07.09.2020 13:17:26

В зачем ты нас спрашиваешь? Отлаживай сам. Выполни эту операцию и посмотри.

#23 Re: Laravel 6/7/8 » Как сделать удаление картинок чтоб они удалялись? » 03.09.2020 18:11:15

Тут прекрасно всё:

- в маршруте нет параметра, который бы соответствовал второму параметру экшена. просто верим в чудо, что прилетит что-то нужное.

- тайпхинт Product $id требует чтобы в $id попал экземпляр модели Product, то есть объект, а не целый идентификатор.

- но уже в следующей строке босс пхп использует его для получения чего?, хм... опять Product. получить продукт из продукта. оригинально!

- давайте посмотрим, а для чего нам вообще нужен продукт. бинго! строка с редиректом использует $product->id. то есть нам нужен только идентифитор. идентификатор, Карл! которого ты не получил, потому что не исправил маршрут и ссылку на него. много лишних действий, копипасты из неподходящих примеров. а надо только с маршрутом разобраться. передать в него продакт айди.

все мои коментарии в теме про это, но ты тупо подставляешь в код какие-то куски с миру по нитке, а подумать над тем, что тебе пишут не хочешь. если чего-то не понял из написанного — спроси. не понял снова — спроси. не надо просто ждать когда за тебя сделают. весь твой многолетний опыт это доказывает: копирование не добавляет ума. надо заставлять мозг работать.

#24 Re: Laravel 6/7/8 » Как сделать удаление картинок чтоб они удалялись? » 03.09.2020 14:22:13

public function destroy(Image $image, Product $id)
что лежит в $id?

нам не надо видеть все твои закоментированные строки, весь этот визуальный шум!

это же парадокс: "как сделать удаление чтобы удалялось. картинка удаляется".

#25 Re: Laravel 6/7/8 » Как сделать удаление картинок чтоб они удалялись? » 03.09.2020 14:17:39

С меня хватит )))
Ответ на все твои сложности один: перестань копировать и вставлять, начни думать и проверять.

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