繁体   English   中英

使用 Laravel 7 的查询生成器的软删除 onlyTrashed 方法时出错

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM