在Laravel 7的查询生成器中使用soft delete onlyTrashed方法时出错
我想在Laravel的查询生成器中开始使用软删除模型 顺便说一下,我在创建了列deleted_at,并在模型中实现了软删除模型 Request.php:在Laravel 7的查询生成器中使用soft delete onlyTrashed方法时出错,laravel,soft-delete,Laravel,Soft Delete,我想在Laravel的查询生成器中开始使用软删除模型 顺便说一下,我在创建了列deleted_at,并在模型中实现了软删除模型 Request.php: namespace App; use Illuminate\Database\Eloquent\Model; use Illuminate\Http\Request as Req; use Illuminate\Database\Eloquent\SoftDeletes; class Request extends Model {
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request as Req;
use Illuminate\Database\Eloquent\SoftDeletes;
class Request extends Model
{
use SoftDeletes;
}
请求控制器功能:
public function already_deleted_checker($id_req)
{
$request_customer_match_rip = DB::table('requests')->onlyTrashed()->select('id')->where('id', '=', $id_req)->get();
$request_customer_match_rip_len = count($request_customer_match_rip);
if ($request_customer_match_rip_len > 0) {
return true;
}
}
函数“已删除”检查器应检查“已删除”列中的值是否为空。。。但不幸的是,当我运行该函数时,我在浏览器中看到了以下错误:
Call to undefined method Illuminate\Database\Query\Builder::onlyTrashed()
是否有帮助?当使用软删除时,您应该使用Model QueryBuilder,而不是通用的,实际上通常您应该有99%的时间使用Model QueryBuilder
当使用软删除时,您应该使用模型QueryBuilder,而不是通用的,实际上,您应该99%的时间使用模型QueryBuilder
为什么要使用DB而不是雄辩的模型 简单地说:
App\Request::onlyTrashed()->select('id')->where('id', '=', $id_req)->get();
DB facade不知道唯一的分层方法。为什么要使用DB而不是雄辩的模型 简单地说:
App\Request::onlyTrashed()->select('id')->where('id', '=', $id_req)->get();
DB facade不知道唯一的刷新方法。只是一个提示。。。避免使用诸如:Model、Request、Controller之类的类名,因为它们已经存在,有时只会带来麻烦!只是一个提示。。。避免使用诸如:Model、Request、Controller之类的类名,因为它们已经存在,有时只会带来麻烦!对于您的代码,它可以工作,但是当我删除一行时,deleted_at列中的值仍然为null。。。这正常吗?我知道该值应该成为当前时间戳。您还应该将其作为模型删除,Request::find$id->delete;,看一下您的初始代码,我假设您会在代码中使用DB::facade,它可以工作,但是当我删除一行时,deleted_at列中的值仍然为null。。。这正常吗?我知道该值应该成为当前时间戳。您还应该将其作为模型删除,Request::find$id->delete;,查看您的初始代码,我假设您也会使用DB::facade