Как передать идентификатор в контроллер из поля зрения (Редактировать пользователя в laravel) - PullRequest
0 голосов
/ 10 октября 2018

У меня есть представление, которое отображает все записи user в базе данных.При нажатии на кнопку edit появляется сообщение об ошибке:

Отсутствуют обязательные параметры для [Route: admin.] [URI: admin / edit / {id}].

{!! Form::open(array('action' => 'Admin\AdminController@edit')) !!} 

<tbody>
   @unless (empty($userdata))
   @foreach ($userdata as $user)
   <tr>
      <td>{{$user->id}}</td>
      <td>{{$user->name}}</td>
      <td>{{ date('d-m-Y', strtotime($user->created_at)) }}</td>
      <td>{{$user->email}}</td>
      <td>{{$user->role}}</td>
      <td><a href="admin/edit/{{$user->id}}" class="btn btn-primary"><i class="fa fa-pencil"></i></a></td>
   </tr>
   @endforeach 
   @endunless                                                 
</tbody>

rout.php

Route::group(['middleware' => ['auth','admin'], 'prefix' => 'admin', 'as' => 'admin.'], function () {
    Route::get('/home', 'Admin\AdminController@index');    
    Route::get('/register', 'Admin\AdminController@register');
    Route::post('/create', 'Admin\AdminController@create');
    Route::get('/manage', 'Admin\AdminController@manage');
    Route::any('/quote', 'Quote\QuoteController@index');
    Route::patch('/edit/{id}', 'Admin\AdminController@edit');
});

Я пробовал это тоже, но все еще не работает.

route ():

<td><a href="{{ route('admin.edit', ['id'=>$user->id]) }}" class="btn btn-primary"><i class="fa fa-pencil"></i></a></td>

url ():

<td><a href="{{ url('/admin/edit/'.$user->id) }}" class="btn btn-primary"><i class="fa fa-pencil"></i></a></td> 

Ответы [ 4 ]

0 голосов
/ 11 октября 2018
{!! Form::open(array('action' => 'Admin\AdminController@edit')) !!}

Исправлена ​​проблема: была проблема с моим действием формы, которое указывало на тот же метод контроллера.

<div class="box-body table-responsive">
   <table class="table table-hover data-table">
      <thead>
         <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Date</th>
            <th>Email</th>
            <th>Role</th>
            <th>Edit</th>
         </tr>
      </thead>
      <tbody>
         @unless (empty($userdata))
         @foreach ($userdata as $user)
         <tr>
            <td>{{$user->id}}</td>
            <td>{{$user->name}}</td>
            <td>{{ date('d-m-Y', strtotime($user->created_at)) }}</td>
            <td>{{$user->email}}</td>
            <td><a href="{{ url('/admin/edit/'.$user->id) }}" class="btn btn-primary"><i class="fa fa-pencil"></i></a></td>
         </tr>
         @endforeach 
         @endunless                                                 
      </tbody>
   </table>
</div>

Маршруты

Route::group(['middleware' => ['auth','admin'], 'prefix' => 'admin', 'as' => 'admin.'], function () {
    Route::get('/home', 'Admin\AdminController@index');    
    Route::get('/register', 'Admin\AdminController@register');
    Route::post('/create', 'Admin\AdminController@create');
    Route::get('/manage', 'Admin\AdminController@manage');
    Route::any('/quote', 'Quote\QuoteController@index');    
    #Route::post('/edit', ['uses'=>'Admin\AdminController@edit']);


    Route::get('edit/{id}', 'Admin\AdminController@edit')->name('update.request');

});

Спасибо за помощь.

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

Вы можете передать его через URL.

Если это форма , вы можете иметь скрытый ввод для id.Например,

<input type="hidden" name="user_id" value="{{ $user->id }}">
0 голосов
/ 10 октября 2018

я думаю, вам нужно добавить get route для редактирования

Route::patch('/edit/{id}', 'Admin\AdminController@edit')->name('edit');

и добавить функцию маршрута в blade-файле

<td><a href="{{ route('admin.edit', ['id'=>$user->id]) }}" class="btn btn-primary"><i class="fa fa-pencil"></i></a></td>
0 голосов
/ 10 октября 2018

Изменить:

<td>
    <a href="/edit/{{$user->id}}" class="btn btn-primary">
        <i class="fa fa-pencil"></i>
    </a>
</td>

на:

<td>
    <a href="/admin/edit/{{$user->id}}" class="btn btn-primary">
        <i class="fa fa-pencil"></i>
    </a>
</td>

Ваш маршрут должен включать admin.

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