ソフト削除を使い始めたばかりなので、やり方は分かりません。私はちょうど誰かの例に従っていますが、適切なソフト削除方法はまだ分かりません。私が欲しいのは、personal_infoテーブルを削除することですが、何が間違っているのかわからないので、私は失われてしまうエラーメッセージが表示されないようにしています。おかげでたくさんのテーブル上のソフト削除
home.blade.php
<table class="table table-bordered">
<tr>
<th><strong><big>Name: </big></strong></th>
<th><strong><big>Action </big></strong></th>
</tr>
<td>
<tr>
@foreach($data as $value)
<tr>
<th><a href="{{route('user.show',['id'=>$value->id])}}">{{$value->Name}}</a></th>
<th><form action="{{ url('/home/'.$value->id.'/delete') }}" method="post">
<button>Delete</button>
</form></th>
</tr>
@endforeach
</tr>
</tr>
</table>
コントローラー:
public function delete($id = 0){
if ($id > 0){
personal_info::destroy($id);
}
return redirect("/home");
}
または私はそれがこのようにすればよいですか?モデルpersonal_info
public function delete($id){
$data = personal_info::find($id)->delete();
return redirect("/home");
}
:
use Illuminate\Database\Eloquent\Model;
use Eloquent;
use SoftDeletes;
class personal_info extends Eloquent
{
protected $fillable = array('Name');
protected $table = 'personal_infos';
protected $primaryKey = 'id';
protected $dates = ['deleted_at'];
public function user_info1s() {
return $this->hasMany('App\user_info1','user_id');
}
ルート:(わからない、私が代わりにDELETEを使用する必要があります)
Route::get('/home/{id}/delete', '[email protected]');
ソフト削除を使用するとタイムスタンプで作業するので、基本的にデータベースレコードをソフトに削除すると、特定のレコード 'deleted_at'フィールドにタイムスタンプが与えられ、フロントエンドでデータをループアウトすると、 'where delete_at === NULL'のようなものです。 –
しかし、私が行ったすべてのリソースでタイムスタンプを与えるには、これだけでした。 "$ table-> softDeletes();" @WesMurray – blastme
私はちょうどwhere句 "personal_info :: findOrFail($ id) - >( 'deleted_at'、 '='、NULL) - > delete();を使いました。 @WesMurray – blastme