我如何才能在幼虫中仅找到已删除的行?

问题描述 投票:0回答:4

我正在使用Deleted_at,我想搜索并仅查找已删除的行

这是我的控制器代码

 public function trashedJobSearch(Request $request)
{
    $search = $request->get('search');
    $jobs = Jobs::select('id', 'company_name', 'position_name', 'job_description','deleted_at', 'created_at', 'expire_date', 'status')
        ->where(DB::raw('lower(company_name)'), 'like', '%' . mb_strtolower($search) . '%')
        ->orWhere(DB::raw('lower(position_name)'), 'like', '%' . mb_strtolower($search) . '%')
        ->where('deleted_at', '!=', null)
        ->paginate(10);

    return view('/trashed', compact('jobs'));
}

我尝试使用onlyTrashed(),但它也不起作用

php laravel
4个回答
0
投票

onlyTrashed()方法应该适合您。 Laravel删除条目的Docs。我见过有时候添加原始的select语句会搞砸它。

selectDB::raw取出多余的位,然后在需要时添加它们。从最简单的开始:

$testOfDeletedOnlyJobs = Jobs::onlyTrashed()->get();

从这里开始,添加查询的其他部分以查看失败的原因和原因。如果上述内容什么都没有给您,也许没有删除的记录?


0
投票

您可以使用Model::onlyTrashed()->get();

您是否正在寻找此帖子?How to get all rows (soft deleted too) from a table in Laravel?


0
投票

由于有orWhere,因此需要同时使用groupingonlyTrashed

Jobs::select('id', 'company_name', 'position_name', 'job_description','deleted_at', 'created_at', 'expire_date', 'status')
  ->where(function ($query) use ($search) {
        $query->where(DB::raw('lower(company_name)'), 'like', '%' . mb_strtolower($search) . '%')
              ->orWhere(DB::raw('lower(position_name)'), 'like', '%' . mb_strtolower($search) . '%');
   })->onlyTrashed()
     ->paginate(10);

0
投票

您可以尝试这个。

在您的模型中-

use Illuminate\Database\Eloquent\SoftDeletes;

class ModelName extends Model
{
    use SoftDeletes;
}

仅获取已删除的行

$search = $request->get('search');
$data = App\ModelName::onlyTrashed()
                ->where('id', $search)
                ->get();
© www.soinside.com 2019 - 2024. All rights reserved.