Задать вопрос
  • Как отрендерить компонент Blade в Laravel?

    @a0xh Автор вопроса
    РЕШЕНИЕ

    В сервис-провайдере:

    /**
     * App\Infrastructure\Providers\RepositoryServiceProvider.php
     */
    public function boot(): void
    {
        Blade::componentNamespace('App\\Application\\Components\\', 'admin');
        Blade::component('admin::navigation', Navigation::class);
    
        /* ... */
    }


    В компоненте:

    /**
     * App\Application\Components\Navigation.php
     */
    public function render(): \Illuminate\View\View
    {
        return View::make('admin::components.navigation', [
            'routes' => $this->registerRoutes()
        ]);
    }


    Во вьюхе:

    <x-admin::navigation />
    Ответ написан
    Комментировать
  • Laravel Relationships, не использовать left join, как заменить?

    @a0xh
    $posts = Post::query()->with(['user' => function($query) {
        $query->oldest('created_at')->take(20);
    }])->get();
    
    foreach ($posts as $post)
    {
        dump($post->user);
    }
    Ответ написан
    Комментировать
  • Как отфильтровать товары по категории?

    @a0xh
    $products = Product::query()->with('categories')->where('categories.id', $category->id)->get();


    Но лучше сперва посмотреть сам SQL-запрос без where(/*...*/) и потом прописать алиас, типа: select('categories.id AS c.id'), чтобы с ID товаров не пересекалось.

    А еще лучше — посмотреть какой-нибудь курс по SQL, тогда Eloquent ORM или Query Builder от Laravel вообще не будут представлять из себя что-то сложное, и непонятное.
    Ответ написан
    Комментировать
  • Как реализовать метод edit в Laravel?

    @a0xh Автор вопроса
    Как и писал выше Алексей Уколов, нужно было просто передать второй параметр.

    public function edit($login, Account $account)
    {
        return view('profile.accounts.edit', [
            'account' => $account
        ]);
    }
    Ответ написан
    Комментировать