Маршрут редактирования Laravel не определен - PullRequest
0 голосов
/ 01 октября 2018

Здесь код маршрута:

Route::resource('ruangjns', 'RuanganjnsController');
Route::get('ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit');

Здесь контроллер:

public function edit(Ruanganjns $ruangjn)
    {
        $ruangjn = Ruanganjns::findOrFail($ruangjn->id);
        return view('ruanganjns.edit', compact('ruangjn'));
    }

Здесь индекс вида:

<tbody>
@php
$no = 1;
@endphp
@foreach ($ruanganjns as $data)
<tr>
<td>{{ $no++ }}</td>
<td>{{ $data->kode_jenis_ruangan }}</td>
<td>{{ $data->jenis_ruangan }}</td>
<td>{{ $data->tgl_berlaku }}</td>
<td>{{ $data->status }}</td>
<td>
<a href="{{ route('ruangjns.edit', $data->id) }}" class="btn btn-warning">Edit</a>
</td>
<td>
<form action="{{ route('ruangjns.destroy', $data->id) }}" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="hidden" name="_method" value="DELETE">
<button type="submit" class="btn btn-danger" onClick="return confirm('Are You Absolutely Sure You Want to Delete the Data?')">Delete</button>
</form>
</td>
</tr>
@endforeach
</tbody>

Здесь браузер формы результатов

enter image description here

В последнее время, прежде чем я получил код ошибки от редактирования. Это мое сообщение до Так что я поставил этот код

Route::get('ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit');

после этой работы, теперь ошибка при индексации не может прочитать кнопку EDIT, как на картинке.Но когда я ищу ошибку в браузере, ее нужно заменить на URL

<a href="{{ route('ruangjns.edit', $data->id) }}" class="btn btn-warning">Edit</a>

<a href="{{ url('ruangjns.edit', $data->id) }}" class="btn btn-warning">Edit</a>

, но главная проблема заключается в том, как получить доступ к редактированию, если я использую URL или не используюэто?

Спасибо.

Ответы [ 6 ]

0 голосов
/ 01 октября 2018

Прежде чем использовать описанное ниже решение, попробуйте использовать маршрут по умолчанию - удалите строку редактирования маршрута.Если вы сделали контроллер с флагом передачи команд консоли artisan -r ресурсным, у вас уже есть определенный метод редактирования.Здесь вы переопределяете метод редактирования по умолчанию ( контрольная таблица ), пишете новый метод редактирования, для которого не задано имя маршрута.Решением является использование метода по умолчанию или использование заданного пользовательского метода редактирования, но, что важно, перед маршрутами ресурсов.

Route::get('ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit')->name('ruangjns.custom-edit');
Route::resource('ruangjns', 'RuanganjnsController');

, которые вы вызываете с {{$ route ('ruangjns.custom-edit', $ ruangjnsId)}}

0 голосов
/ 01 октября 2018

Согласно этой документации Laravel , вам нужно записать параметры в скобках.Можете ли вы попробовать с этим синтаксисом по ссылке на ваш взгляд?

{{ route('ruangjns.edit', ['ruangjns' => $data->id]) }}
0 голосов
/ 01 октября 2018

используйте это

<a href="{{ route('ruangjns/'.$data->id.'/edit') }}" class="btn btn-warning">Edit</a>

public function edit($ruangjn)
{
    $ruangjn = Ruanganjns::findOrFail($ruangjn);
    return view('ruanganjns.edit', compact('ruangjn'));
}
0 голосов
/ 01 октября 2018

Просто удалите 'Route :: get (' ruangjns / {ruangjn} / edit ',' RuanganjnsController @ edit ');'

Контроллер ресурсов Laravel уже имеет действие ' edit '.

https://laravel.com/docs/5.7/controllers#resource-controllers

0 голосов
/ 01 октября 2018

это потому, что вы не указали никакого имени для маршрутов.

Route::resource('ruangjns', 'RuanganjnsController');
Route::get('ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit')->name('ruangjns.edit');

Или более приличный способ, которым вы можете попробовать

<a href="{{ url('ruangjns.update', $data->id) }}" class="btn btn-warning">Edit</a>

Более того, только один маршрут Route::resource('ruangjns', 'RuanganjnsController'); будетвыполни трюк, который тебе не нужен, чтобы указать отдельный маршрут, потому что он будет обрабатываться самим ресурсом.

0 голосов
/ 01 октября 2018

Если вы хотите использовать маршрут внутри вашего представления, вы должны дать маршруту название, например:

Route::get('ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit')->name('ruangjn-edit');

Затем просто используйте

{{route('ruangjn-edit', ['ruangjn' => $data->id])}}

Для получения дополнительной информации смотритев документации по Laravel Routing https://laravel.com/docs/5.7/routing

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