Laravel 5.5 - Передача переменной в URL с помощью Route :: resource? - PullRequest
0 голосов
/ 27 мая 2018

Я пытаюсь создать маршрут с Laravel, который имеет переменную в своем пути.Я написал:

Route::resource('/maps/valuechains/{valuechain_id}/segments/', 'BackOffice\SegmentController');

В моем контроллере я создал метод индекса:

public function index(EntityRepository $vcs, $valuechain_id)
{
    $entitiesLists = $vcs->getEntities();

    $segments = Segment::select()
        ->join('valuechains', 'segments.valuechain_id', 'valuechains.id')
        ->join('lang_segment', 'segments.id', 'lang_segment.segment_id')
        ->join('langs', 'langs.id', 'lang_segment.lang_id')
        ->join('admins', 'segments.admin_id', 'admins.id')
        ->where([
            ['langs.isMainlanguage', '=', 1],
            ['valuechains.id', '=', $valuechain_id]
        ])
        ->get();

    $segmentCount = Segment::count();
    return view('admin.pages.maps.segments.index', compact('segments', 'segmentCount', 'entitiesLists'));
}

На мой взгляд, у меня есть crud

<span style="overflow: visible; width: 110px;">
    <span>
        <a href="{{ route('segments.show', $segment->id) }}"
           class="m-portlet__nav-link btn m-btn m-btn--hover-accent m-btn--icon m-btn--icon-only m-btn--pill"
           title="View details">
             <i class="la la-eye"></i>
         </a>
       <a href="{{ route('segments.edit', $segment->id) }}"
           class="m-portlet__nav-link btn m-btn m-btn--hover-accent m-btn--icon m-btn--icon-only m-btn--pill"
           title="Edit details">
           <i class="la la-edit"></i>
        </a>
        {!!
           Form::open([
              'method'    => 'DELETE',
              'route'     => ['segments.destroy', $segment->id]
           ])
        !!}
        {!!
           Form::submit(
              ' ',
             [
              'class' => 'la la-trash m-portlet__nav-link btn m-btn m-btn--hover-danger m-btn--icon m-btn--icon-only m-btn--pill',
              'title' => 'Delete'
             ]
           )
        !!}
        {!! form::close() !!}
    </span>
</span>

Моя проблема заключается вследующее касается имен маршрутов:

Маршрут [сегментов.шоу] не определен.(Вид: C: \ wamp64 \ www \ network-dev \ resources \ views \ admin \ pages \ maps \ сегменты \ index.blade.php)

Просматривая свой список маршрутов, я вижу это:

URL-адрес следующий: admin / maps / valuechains / {valuechain_id} / сегменты Имя маршрута: index

App \ Http \ Controllers \ BackOffice \ SegmentController @ index У меня должны быть сегменты. Indexвместо

1 Ответ

0 голосов
/ 29 мая 2018

Мне просто пришлось удалить «/», заменив «сегменты /» на «сегменты» в моем маршруте:

Route::resource('/maps/valuechains/{valuechain_id}/segments/', 'BackOffice\SegmentController');

Правильная запись была:

Route::resource('/maps/valuechains/{valuechain_id}/segments', 'BackOffice\SegmentController');
...