如何在 Laravel 中仅找到已删除的行?

我SoftDeletes在我的项目中使用,它被识别为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(),但它也不起作用。


繁花不似锦
浏览 129回答 3
3回答

慕标5832272

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

当年话下

该onlyTrashed()方法应该适合您。Laravel 的文档已删除条目。不过,我曾见过添加原始 select 语句搞砸了的情况。select用和取出多余的位,DB::raw然后在您拥有所需内容后添加它们。从最简单的开始:$testOfDeletedOnlyJobs = Jobs::onlyTrashed()->get();在这里,添加查询的其他部分以查看失败的位置和原因。如果以上没有给您任何信息,也许没有删除的记录?

达令说

你可以试试这个。在您的模型中-use Illuminate\Database\Eloquent\SoftDeletes;class ModelName extends Model{    use SoftDeletes;}仅获取已删除的行$search = $request->get('search');$data = App\ModelName::onlyTrashed()                ->where('id', $search)                ->get();
打开App,查看更多内容
随时随地看视频慕课网APP