我的模特是:
<?php namespace App\Http\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Province extends Model {
// use SoftDeletes;
public $timestamps = false;
protected $dates = ['deleted_at'];
public function country(){
return $this->belongsTo('App\Http\Models\Country');
}
public function users(){
return $this->hasMany('App\Http\Models\User');
}
public function customers(){
return $this->hasMany('App\Http\Models\Customer');
}
}
控制器:
public function destroy($id)
{
$province = Province::with('country')->where('id', $id)->first();
// dd($province);
$province->delete();
}
致电http://localhost:8080/pal/public/province/22/delete。
记录22从数据库中物理删除。
缺少什么?
答案 0 :(得分:3)
如果您的模型启用了软删除,则在您进行查询时,将不会返回deleted_at
不是null
的记录。因此,您尝试在delete()
上调用null
,这会导致错误。
在测试过程中手动将deleted_at设置为null
以“取消删除”记录。
此外,您可能应该在删除之前检查模型是否为null
:
$province = Province::with('country')->where('id', $id)->first();
if($province != null){
$province->delete();
}