Слизняк Laravel ломается с косой чертой - PullRequest
0 голосов
/ 18 сентября 2018

Мой слаг хранится в моей базе данных.В моем контроллере я получаю свой slug en, затем добавляю к нему представление.

Все работает нормально, если у меня есть URL-адрес, подобный domain.com/prices.

Но когда у меня есть URL-адрес, похожий наdomain.com/prices/somethingelse, то приложение закрывается.

Похоже, я не могу обработать /

В моей базе данных у меня есть правильный URL ..

Это мойконтроллер:

  <?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Models\Content;
use App\Models\Product;
use App\Models\Brand;
use App\Models\Thumbnail;
use App\Models\Content_blocks;
use App\Models\Basiscontent;
use App\Models\Contentcategory as Contentcategories;
use App\Models\View as viewValue;
use App\Models\Banners as Banner;
use App\Models\Aanbieding;
use Illuminate\Http\Request;
use Illuminate\View\View as template;
use Illuminate\Support\Facades\View;

class ContentController extends Controller
{
    /**
     * Gebruikerslijst
     *
     * @param Request $request
     * @param string $slug
     * @param string $value
     * 
     * @return template
     */
    public function index(Request $request, string $slug = '', string $value = '', int $id = null): template
    {
        if ($slug == '') {
            $slug = '/';
        }

        $content = Content::getContentBySlug($slug);

        if ($content === null) {
            return abort(404);
        }

        $pageSlug = $content->slug;
        $view = $content->view()->first();

        if ($view === null) {
            $view = 'index';
        } else {
            // $pageView = $content->view()->first()->value;
            // $view = $pageSlug !== $pageView ? 'index' : $pageView;
            $view = $content->view()->first()->value;
        };

       $id = $content->id;

        $content_blocks = Content_blocks::getContentBlock($id);
        $content_block_thumb = Content_blocks::getContentThumb($id);
            // dd(Content_blocks::categorie());
            // dd($contentcategory = Contentcategories::all());

        // $content_block_thumb = Content_blocks::getContentBlock();
        // dd(Content::getContentBySlug($slug)->title);
        // dd(Content_blocks::getContentBlock($id)->id);
        // dd(Thumbnail::getFile(1));

        $content_blocks_cat = Content_blocks::orderBy("order", "ASC");
        // dd($content_blocks_cat->get());

        return view::make($view)
            ->with('products', Product::all()->sortBy('order'))
            ->with('brands', Brand::all())
            ->with('banners', Banner::all())
            ->with('aanbiedingen', Aanbieding::all())
            ->with('contentcategory', Contentcategories::all())
            ->with('basiscontent', Basiscontent::all())
            ->with('content', $content)
            // ->with('content_blocks', Content_blocks::all());
            ->with('content_blocks', $content_block_thumb)
            ->with('content_blocks_cat', $content_blocks_cat->get());
            // ->with('thumbnail', Thumbnail::getFile($content_block_thumb->thumbnail_id));
            // ->with('thumbnail', Thumbnail::getFile(1));
    }

}

Маршрут:

Route::get('{slug?}', '\App\Http\Controllers\ContentController@index');

Надеюсь, вы мне поможете.

Спасибо!

1 Ответ

0 голосов
/ 18 сентября 2018

Для дополнительной косой черты необходимо добавить еще одну проверку слоя для маршрута:

Route::get('{slug1}/{slug2?}', '\App\Http\Controllers\ContentController@index');

Добавьте столько глубин маршрута, сколько необходимо.Вам необходимо настроить свою функцию так, чтобы она принимала и дополнительные параметры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...