Ответы пользователя по тегу Laravel
  • Почему на сайте laravel с протоколом https не отображаются картинки?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Первое что нужно сделать - почистить кэши.
    Далее, проверить существует ли папка / симлинк на сервере, смотрите в сторону is_dir(), is_link()...
    После этого уже что-то думать.
    Ответ написан
    6 комментариев
  • Что не так в моем методе утаения товаров из корзины?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Начнем с того что роуты так не пишутся. А хелпер роута работает не так как у вас предполагается.
    //router 
    ...
    Route::post('/add/{productId}', [CartController::class, 'addToCart'])->name('add.product.toCart');
    Route::delete('/remove/{productId}', [CartController::class, 'remove'])->name('product.remove');
    ...
    
    //Controller
    public function remove($productId)
    {
    /* это вообще в мидлваре должно происходить, тут ему делать нечего, впишите роут в ауч группу...
        if (!Auth::check()) {
            return redirect()->route('login');
        }
    */
        $cart = Session::get('cart');
        if (array_key_exists($productId, $cart)) {
            unset($cart[$productId]);
            Session::put('cart', $cart);
        }
        return redirect()->route('cart.index');
    }
    ...
    //HTML
    <form action="{{ route('product.remove', ['productId'=>$productId]) }}" method="post">
    // читать как работает хелпер route, посмотреть какой урл он выдает у вас сейчас, плакать, править...


    на первом просто редиректит,
    Во первых - редирект куда? Во вторых, стоит заглянуть в сгенерированный хтмл и посмотреть какой там реальный урл формы. Так же при отправке посмотреть нетворк и посмотреть что и куда реально отправляется и с какими данными.
    Ответ написан
  • Как в laravel создать связь модель к таблице?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    У одного Product может быть несколько Photo. Какую связь создать в модели к таблице?
    Вроде из определения должно быть очевидно. У продакта хэз мэни фото, у фото можно (но не обязательно) белонгс ту продакт.
    Ответ написан
    7 комментариев
  • Как отдать view как картинку в Laravel?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Если важно именно качественный рендер, то вроде кроме как хеадлесс хорм -> pdf -> image преобразований ничего не придумано.
    Ответ написан
  • Почему браузер вместо того, чтобы скачать файл PDF, патается его отобразить?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    cajka-d, 1)
    Вывода перед заголовками тоже нет, если такое есть, то laravel сразу бы ошибку выдал.
    Это варнинг, а не ошибка, так что вполне может игнорироваться, в зависимости от настроек.

    2) Вроде в ларе респонс должен указывать заголовки отдельно:
    return response($content, 200)
                ->withHeaders([
                    'Content-Type' => $type,
                    'X-Header-One' => 'Header Value',
                    'X-Header-Two' => 'Header Value',
                ]);


    3) Попробуйте завести вручную:
    В контроллере вместо return $pdf->download($filename); сделайте руками вывод заголовков и ечо содержимого пдф, затем ексит. Если сработает - значит респонс дополнительно обрабатывается после ретурна из контроллера...
    Ответ написан
    Комментировать
  • Для чего Laravel-разработчики стремятся создать избыточные API ресурсы?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Ведь если нет никакой дополнительной обработки, то ведь можно просто сделать $model->toArray(), не?
    Во первых - в 90% случаев модель не достается "голой", а тянет с собой связанные объекты, например роли или аватарки или еще что-то. Они явно лишние в выдаче.
    Во вторых - не все поля одинаково полезны, скорее всего часть полей не должны попадать в выдачу, например хеш пароля или ключ авторизации...
    Ответ написан
    Комментировать
  • Как добавить добавить токен для авторизованного пользователя?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    В вашем случае есть несколько способов, различных по реализации.
    1) Самый простой - не использовать токен в заголовке, а переслать его как пост параметр, соответственно линк будет по сути формой (точнее ее кнопкой субмит). На сервере соответственно проверяете токен вручную из пост запроса, обратно отдаете собсно поток файла, предварив его соответствующими заголовками, что-то типа
    header("Cache-Control: public");
        header("Content-Description: File Transfer");
        header("Content-Disposition: attachment; filename=somefile.ext");
        header("Content-Transfer-Encoding: binary");
        header("Content-Type: binary/octet-stream");
        readfile($filePath);

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

    3) Так же через фетч отдаем заголовки, на сервере формируем временный разовый линк с каким-нибудь хитрым хэшем, обратно возвращаем этот линк, далее в колбэке делаем window.location = хитрый_линк, и с сервера с заголовками из первого варианта отдаем файл, - вуаля, получаем диалог сохранения. Беда как и в первом случае с отсутствием заголовков во втором запросе с хитрым линком, то есть те же яйца, вид сбоку... Единственно что тут можно прописать урл скачивания как публичный, и быть уверенным что линк точно получен авторизованным пользователем.
    Ответ написан
  • Почему в response ответ выводит 500 (Internal Server Error)?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    storage/logs/laravel.log
    Ответ написан
    Комментировать
  • Как сохранить другую сущность при авторизации?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Подскажите пожалуйста как сохранить модель Doctors как авторизованного пользователя?

    1) Модели не называются во множественном числе. Модель Doctor привязывается к таблице doctors. И "я получаю модель Users," - то же самое, модель User.
    2) Доктор или пациент это не пользователь, это либо роль, и тогда надо делать RBAC, либо авторизированная сущность, и тогда нужно связывать юзера и сущность через один-к-одному, в случае если доктор и пациент кардинально различаются по свойствам, а не просто имеют разные права. А пользователь просто способ авторизации/идентификации.
    Ответ написан
    Комментировать
  • Как лучше хранить данные при пошаговой регистрации?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Всем привет. Хочу сделать пошаговую регистрацию на сайте. Как бы это сделать правильнее?
    Нет рецепта для общего случая. Всегда есть нюансы, если вы делаете что-то чуть в сторону от классики.

    1. После каждого шага сохранять в БД? Много запросов бессмысленных
    Ого, много это сколько? И почему бессмысленных? Вы же осмысленные данные туда пишете?

    У кого, какое мнение? Где какие подводные камни/нюансы?
    Мнение: С таким описанием нихрена не посоветуешь. По конкретным шагам можно что-то обсуждать.
    В целом же: Если первый шаг позволяет ввести все данные необходимые для входа в аккаунт, то писать надо в бд, ну и соответственно выслать письмо с подтверждением. В бд можно писать так же стадию прохождения. Если остальные пункты не являются критическими для функционала, можно предлагать при следующем логине дозаполнить данные, основываясь на записанном номере стадии. Ну или просот сразу перекидывать на нужную фазу, если она является необходимой.
    Ответ написан
    Комментировать
  • Где лучше хранить переводы в мультиязычном сайте?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Для лары есть пакеты с переводами уже готовые, если их функционал подходит, не вижу смысла строить свой велосипед.
    Если же нужно очень кастомное решение с администрированием на уровне админки, то бд будет более качественным решением, так как работа с поиском и сортировкой это больше про РБД, нежели про файлы.
    Ответ написан
    Комментировать
  • Как правильно сформировать такой запрос?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Проще всего рут комментарию давать парент_ид равный своему ид, тогда все становится элементарным - ордер по парент_ид, креатед_эт. При выводе просто проверять если парент = ид. А все коментарии которые ответы на ответы все равно писать как ответ на рут коментарий, так как они будут тупо по дате строиться, и разницы в принципе нет. Разве что вы хотите чтобы ветвление было бесконечным, тогда проще ввести рут_ид.
    Ответ написан
    Комментировать
  • Как сгрупировать запрос в Laravel?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Что-то типа:
    $a = Model::orderBy("id", 'desc')->limit(3);
    $b = Model::latest()->union($a)->get();
    Ответ написан
    Комментировать
  • Как получить компонент Laravel через AJAX?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    return (String) view('template.name');
    или
    $view=view('template.name');
    $view=$view->render();
    $responseData->responseSuccess($view);
    Ответ написан
    Комментировать
  • Как вывести в laravel count записей с одинаковым полем?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    каунт(*) as cnt + груп бай book_id + ордер бай cnt деск + лимит 5
    Ответ написан
    Комментировать
  • Как исправить ошибку на сервере?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Вангую что не настроен mod_rewrite. Соответственно все чпу превращаются в тыкву. Настраивайте апач через .хтакксесс файл.
    Ответ написан
    6 комментариев
  • SQL запрос, как избавится от массива в массиве?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    ->get() ->first()
    А вообще вопрос на уровне документации и легко ищется поисковиком, учитесь использовать источники.
    Ответ написан
    6 комментариев
  • Почему приходит пустой AJAX запрос из контроллера в Laravel?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    if($request->ajax()){
       echo $request->orderBy; // ретурн тут до жопы, кому ты его возвращаешь?
       exit(); // иначе дальше выполнение идет и как раз получаешь всю страницу.
    }

    Естественно надо проверить что условие выполняется, а $request->orderBy не пустой и содержит строку/жсон.
    Ответ написан
  • Как получить разницу двух полей таблицы Laravel?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    $result = Dok::selectRaw('(balance - revers) as results')->where('results', '>',  5000)->orderBy('results', 'desc')->get();
    Ответ написан
    Комментировать