[英]error using soft delete onlyTrashed method with the query builder of Laravel 7
我想开始使用带有 Laravel 查询生成器的软删除模型
顺便说一句,我创建了列deleted_at
并在 model 中实现了软删除模型。
请求.php:
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request as Req;
use Illuminate\Database\Eloquent\SoftDeletes;
class Request extends Model
{
use SoftDeletes;
}
请求控制器 function:
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;
}
}
function already_deleted_checker
应检查 deleted_at 列中的值是否为 null ......但不幸的是,当我运行 function 时,我在浏览器中可视化以下错误
Call to undefined method Illuminate\Database\Query\Builder::onlyTrashed()
可以帮忙?
为什么要使用 DB 而不是 Eloquent 模型?
简单地:
App\Request::onlyTrashed()->select('id')->where('id', '=', $id_req)->get();
DB 门面不知道onlyTrashed()
方法。
使用软删除时,您应该使用Model
QueryBuilder
而不是通用的,实际上通常您应该 99% 的时间使用Model
QueryBuilder
。
Request::onlyTrashed()->select('id')->where('id', $id_req)->get();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.