Laravel по-русски

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

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

#1 Re: Laravel 6/7/8/9/10 » Код ревью » 17.05.2021 12:06:04

не заметил что тут должен быть $end - 'end'

$end = Carbon::parse($request->get('start'));

будем внимательнее к мелочам, друзья )

#2 Re: Laravel 6/7/8/9/10 » Код ревью » 14.05.2021 14:20:09

Спасибо!
Я еще и строчку пустую внизу добавил, согласно спецификации RSR-2)
Расскажу после, чем закончилось) когда будет ответ.

#3 Laravel 6/7/8/9/10 » Код ревью » 14.05.2021 10:41:19

manzhos
Ответов: 3

Привет.
Собеседовали меня недавно и попросили сделать ревью кода на лету:

<?php

namespace App\Http\Controllers;

use App\Jobs\SendCustomerConfirmation;
use App\Jobs\SendParkingConfirmation;
use App\Jobs\UpdateParkingCapacity;
use App\Reservation;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class ReservationController extends Controller
{
    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $start = Carbon::parse($request->get('start'));
        $end = Carbon::parse($request->get('start'));

        if ($start->isFuture() && $end->isAfter($start)) {
            $reservation = new Reservation;
            $reservation->name = $request->get('name');
            $reservation->start = $start->format('Y-m-d H:i');
            $reservation->end = $end->format('Y-m-d H:i');
            $reservation->parking_id = $request->get('parking_id');
            $reservation->created_at = $request->get('created_at');
            $reservation->updated_at = $request->get('updated_at');
            $reservation->save();

            $parking = DB::table('parkings')->where('id', $reservation->parking_id)->get();

            SendCustomerConfirmation::dispatch($reservation);
            SendParkingConfirmation::dispatch($reservation);
            UpdateParkingCapacity::dispatch($parking, $reservation);

            return view('reservation.success', [
                'parking' => $parking,
                'reservation' => $reservation,
            ]);
        }

        return view('reservation.failed');
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Reservation  $reservation
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Reservation $reservation)
    {
        $start = Carbon::parse($request->get('start'));
        $end = Carbon::parse($request->get('start'));

        if ($start->isFuture() && $end->isAfter($start)) {
            $reservation->name = $request->get('name');
            $reservation->start = $start->format('Y-m-d H:i');
            $reservation->end = $end->format('Y-m-d H:i');
            $reservation->parking_id = $request->get('parking_id');
            $reservation->created_at = $request->get('created_at');
            $reservation->updated_at = $request->get('updated_at');
            $reservation->save();

            $parking = DB::table('parkings')->where('id', $reservation->parking_id)->get();

            SendCustomerConfirmation::dispatch($reservation);
            SendParkingConfirmation::dispatch($reservation);
            UpdateParkingCapacity::dispatch($parking, $reservation);

            return view('reservation.update.success', [
                'parking' => $parking,
                'reservation' => $reservation,
            ]);
        }

        return view('reservation.update.failed');
    }
}

Хотелось бы услышать экспертные мнения по данному вопросу, кто что бы переделал?
Интересно насколько я справился с задачей )

#5 Re: Laravel 6/7/8/9/10 » Переадресация на предыдущую страницу после авторизации » 18.10.2020 14:23:07

@DzonnyBB, сорри за возможно глупы вопрос.
а как добавить в сессию user_url?

#6 Re: Laravel 6/7/8/9/10 » Изображение в сообщении » 13.10.2020 16:09:42

smile как выглядит процесс верстки изображений на странице это понятно.
вопрос скорее был в подходе и алгоритме действий.
Вдруг есть что-то существенно облегчающую работу в данном направлении.
(например подход Laravel к связям, БД и пр.)

#7 Laravel 6/7/8/9/10 » Изображение в сообщении » 12.10.2020 19:08:19

manzhos
Ответов: 2

Всем привет.
Кто-нибудь сталкивался в отправкой изображений в сообщениях?
В какую сторону смотреть/копать?
Не просто отправить на сервер/загрузить. А вот как мессенджерах обычно - прямо имидж-сообщение.
( ну и увеличить по клику smile )

Заранее саисибо за советы.

#9 Laravel 6/7/8/9/10 » Переадресация на предыдущую страницу после авторизации » 11.10.2020 22:37:21

manzhos
Ответов: 7

Добрый день.
Никак не получается переадресовать пользователя после регистрации.
(Laravel 7)

В LoginController.php заменил:

RouteServiceProvider::HOME;

на   

    /* redirect to the previous page */
    protected function redirectTo()
    {
        return url()->previous();
    }

и в RedirectIfAuthenticated.php

if (Auth::guard($guard)->check()) {
   return redirect()->intended();
}
return $next($request);

не помогает ((

Подскажите, кто сталкивался

#10 Re: Laravel 6/7/8/9/10 » Связанные таблицы » 04.09.2020 07:45:53

Да, пользователь привязан. Возможно я чего-то недопонимаю, но цикл:

@foreach($user->message() as $message)
  <p>{{ $message->body }}</p>
@endforeach

не работает (не входит даже в него). При этом цикл в этом же месте:

@foreach($user->message()->pluck('body') as $message)
  <p>{{ $message }}</p>
@endforeach

выводит все правильно (но нужны и другие данные по записи).

Поможете разобраться? (Спасибо)

#11 Re: Laravel 6/7/8/9/10 » Связанные таблицы » 27.08.2020 19:00:36

Если еще интересно ) то сработало с конструкцией:
{{ DB::table('users')->where('user_id','=',$user->id)->value('name') }}

#13 Laravel 6/7/8/9/10 » Связанные таблицы » 27.08.2020 16:27:30

manzhos
Ответов: 5

Коллеги, помогите разобраться.

Есть две таблицы связанные один к одному. (Users и Messages)
В блэйд вывести значение (имя автора)
$message->user->name и получаю "Trying to get property 'name' of non-object"

Теперь самое интересное:
конструкция
$message->user
вполне правильно выводит объект
{"id":1,"name":John,"email":"jonh@aol.com","message_id":1}

если поставить

@php
  dd($message->user->name)
@endphp

в тело blade - выводит имя правильно. Причем выводит и до установленного dd на странице тоже.

Кто сталкивался? В чем причина и куда копать?

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