Size: a a a

Laravel для начинающих

2021 February 25

R#

Reset # Alexey S. in Laravel для начинающих
Serg Serdyuk
хы, мне чет кажется что блоги в магазинах - как главная страница SO🌚
Конкурент собирает 200-300к в месяц
источник

R#

Reset # Alexey S. in Laravel для начинающих
На розетке цены неплохие, конвертит блог хорошо в данном случае
источник

SS

Serg Serdyuk in Laravel для начинающих
ну маркетинг от меня далеко, мне ближе бекенд, его хоть не видно😁
источник

R#

Reset # Alexey S. in Laravel для начинающих
Serg Serdyuk
ну маркетинг от меня далеко, мне ближе бекенд, его хоть не видно😁
Я сеошник в прошлом
источник

S

Serg in Laravel для начинающих
Добрый день, в главном шаблоне добавлял для css файла, время модификации, думал в какой класс добавить функцию, в итоге ничего лучше не придумал, как просто оставить в блейде, но я понимаю что это не правильно, возможно кто-то знает, как правильно поступить?
источник

AH

Andrey Helldar in Laravel для начинающих
Leonid Perevalov
Как правильно подружить Laravel/Symfony с React/Vue для реализации клиентского роутинга? Я так понимаю, надо из вьюхи на бэкенде подключить js и дальше общаться с бэком по апи
У нас для этого разделили проект на два - в одном чисто бэк, в другом - фронт.
В nginx настроено два виртуальных хоста. Один на бэк - api.example.com, а второй на фронт - example.com.
И всё. В клиентской части vuejs + vue-router и дальше на бэк запросы отправляет для получения нужных данных.

Если делать в рамках одного сайта, то нужно учитывать момент, например, если юзер перейдёт по странице example.com/foo/bar, то нужно открывать не бэк, куда отправит nginx, а фронт.

То есть, в Ларе нужно добавить отлов этого урла:

app('router')
   ->get('{slug}', [IndexController::class, 'index'])
   ->where('slug', '.*');


Таким образом, все маршруты вида example.com, example.com/foo, example.com/foo/bar и т.д., будут открывать одну вьюху, где уже будет разруливать vue-router или react - смотря что на фронтовой части.
источник

AH

Andrey Helldar in Laravel для начинающих
Serg
Добрый день, в главном шаблоне добавлял для css файла, время модификации, думал в какой класс добавить функцию, в итоге ничего лучше не придумал, как просто оставить в блейде, но я понимаю что это не правильно, возможно кто-то знает, как правильно поступить?
источник

S

Serg in Laravel для начинающих
спасибо, читал документацию и пропустил :(
источник

HM

Haybulla Musaev in Laravel для начинающих
Народ, пишу api, есть прослойка в виде сервисов (OrderService, ProductService). Если по роуту /orders обращается админ, должны выдаваться все заказы, если юзер - только его.

В какой слой лучше всего затолкать вилку вида if($user-role == «user») $query = $query->where(«user_id», $user->id);
источник

HM

Haybulla Musaev in Laravel для начинающих
Думал в сервисный класс, но щас начинаю чесать репу…
источник

SJ

SHEROZ Juraev in Laravel для начинающих
Haybulla Musaev
Народ, пишу api, есть прослойка в виде сервисов (OrderService, ProductService). Если по роуту /orders обращается админ, должны выдаваться все заказы, если юзер - только его.

В какой слой лучше всего затолкать вилку вида if($user-role == «user») $query = $query->where(«user_id», $user->id);
источник

AH

Andrey Helldar in Laravel для начинающих
Haybulla Musaev
Народ, пишу api, есть прослойка в виде сервисов (OrderService, ProductService). Если по роуту /orders обращается админ, должны выдаваться все заказы, если юзер - только его.

В какой слой лучше всего затолкать вилку вида if($user-role == «user») $query = $query->where(«user_id», $user->id);
В сервис передаёшь что-то типа ->user(Auth::user()) или, если сервис инициализирует метод контроллера, то можно так:
->user($request->user())

А внутри ловишь:
$query
   ->when(! $this->user->isAdmin, function (Builder $builder) {
       $builder->where('user_id', $this->user->id);
   });


Где isAdmin - это мутатор в модели юзера (getIsAdminAttribute).
источник

AH

Andrey Helldar in Laravel для начинающих
Ему нужно запрос корректировать, а не ограничивать доступ
источник

LP

Leonid Perevalov in Laravel для начинающих
Andrey Helldar
У нас для этого разделили проект на два - в одном чисто бэк, в другом - фронт.
В nginx настроено два виртуальных хоста. Один на бэк - api.example.com, а второй на фронт - example.com.
И всё. В клиентской части vuejs + vue-router и дальше на бэк запросы отправляет для получения нужных данных.

Если делать в рамках одного сайта, то нужно учитывать момент, например, если юзер перейдёт по странице example.com/foo/bar, то нужно открывать не бэк, куда отправит nginx, а фронт.

То есть, в Ларе нужно добавить отлов этого урла:

app('router')
   ->get('{slug}', [IndexController::class, 'index'])
   ->where('slug', '.*');


Таким образом, все маршруты вида example.com, example.com/foo, example.com/foo/bar и т.д., будут открывать одну вьюху, где уже будет разруливать vue-router или react - смотря что на фронтовой части.
Тоже думал о подобном подходе
источник

HM

Haybulla Musaev in Laravel для начинающих
Andrey Helldar
В сервис передаёшь что-то типа ->user(Auth::user()) или, если сервис инициализирует метод контроллера, то можно так:
->user($request->user())

А внутри ловишь:
$query
   ->when(! $this->user->isAdmin, function (Builder $builder) {
       $builder->where('user_id', $this->user->id);
   });


Где isAdmin - это мутатор в модели юзера (getIsAdminAttribute).
Благодарю, это подходит!
источник

SJ

SHEROZ Juraev in Laravel для начинающих
Andrey Helldar
Ему нужно запрос корректировать, а не ограничивать доступ
😅😅
источник

HM

Haybulla Musaev in Laravel для начинающих
это красиво
источник

K

KOSUMOV | ALI in Laravel для начинающих
Ребята, подскажите пожалуйста, как мне в 'times взять массивом row[1] row[2] row[3]'

public function model(array $row)
   {
       return new ntimes([
           //
           'date'     => Carbon::parse($row[0])->format('Y-m-d'),
           'times'    => trim($row[1]),
       ]);
   }
источник

AH

Andrey Helldar in Laravel для начинающих
KOSUMOV | ALI
Ребята, подскажите пожалуйста, как мне в 'times взять массивом row[1] row[2] row[3]'

public function model(array $row)
   {
       return new ntimes([
           //
           'date'     => Carbon::parse($row[0])->format('Y-m-d'),
           'times'    => trim($row[1]),
       ]);
   }
Чё?
источник

K

KOSUMOV | ALI in Laravel для начинающих
 times'    => trim($row[1]),
сюда мне в одну строку нужно взять массив из ров 1 ро2 ров 3 ров 4 ров 5
источник