Laravel - Невозможно удалить и отобразить данные с помощью Soft Delete - PullRequest
0 голосов
/ 30 ноября 2018

Здравствуйте, я не могу удалить свои данные, почему?вот мой код

на контроллере

   public function displayArchive()
{
    $clients = Client::withTrashed();
    return view('admin.clients.homeArchive')->with('clients', $clients);
}

один Вид

 <table class="table table-bordered" id="dynamic_field">  
           <tr>  
              <th>Client Code</th>
              <th>Client Name</th>
              <th>Address</th>
              <th>Tel No.</th>
              <th>Contact Person</th>
              <th>Mobile No.</th>
              <th>Email Address</th>
              <th>Website</th>
              <th>Status</th>
              <th>Update</th>

           </tr>  
           @foreach ($clients as $client)
           <tr>
               <td>{{ $client->client_code }}</td>
               <td>{{ $client->client_name }}</td>
               <td>{{ $client->address }}</td>
               <td>{{ $client->tel_no }}</td>
               <td>{{ $client->contact_person }}</td>
               <td>{{ $client->mobile_no }}</td>
               <td>{{ $client->email_ad }}</td>
               <td>{{ $client->website }}</td>
               <td><a href="#" class="btn btn-danger">Inactive</a></td>
               <td><a href="/admin/clients/{{ $client->id }}/edit" class="fa fa-edit btn btn-primary"></a></td>

           </tr>      
           @endforeach

        </table>  

на Web Здесь вы можете увидеть, как я вызываю мой контроллер и просматривать страницы.

Route::get('/admin/clients/homeArchive', 'Admin\ClientsController@displayArchive');

EDITED Вот отредактированный код, пожалуйста, посмотрите мой Модель

 use SoftDeletes;

 protected $dates = ['deleted_at'];
 // Table Name
 protected $table = 'clients';
 // Primary Key
 public $primaryKey = 'id';
 // Timestamps
 public $timestamps = true;

1 Ответ

0 голосов
/ 30 ноября 2018

Можете ли вы попробовать метод ->get().

public function displayArchive()
{
    $clients = Client::withTrashed()->get();
    return view('admin.clients.homeArchive')->with('clients', $clients);
}

ПРИМЕЧАНИЕ: он не восстанавливает никакие данные.он получает данные только с удаленными строками.

Если вы хотите восстановить удаленные данные, вы должны использовать метод ->restore().


Для всех восстановленных всех данных;

Ссылка:

<a href="{{ route('admin.client.restore_all') }}" class="btn btn-danger">Inactive</a>

Маршрут:

Route::get('/admin/clients/restore-all', 'Admin\ClientsController@restoreAll')->name('admin.client.restore_all'); 

Действие контроллера:

public function restoreAll(){
   Client::withTrashed()->restore();
}

Восстановление данных по строкам;

Ссылка:

<a href="{{ route('admin.client.restore', $client->id) }}" class="btn btn-danger">Inactive</a>

Маршрут:

Route::get('/admin/clients/restore/{client}', 'Admin\ClientsController@restore')->name('admin.client.restore');

Действие контроллера:

public function restore(Client $client){
  $client->restore();
}

$client->id - это коллекция клиентов, я думаю, что вы хотите неактивен в указанной строке foreach, верно

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