为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
繁花不似锦 2022-11-12 09:57:37
我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(),但它也不起作用。
查看完整描述

3 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

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


查看完整回答
反对 回复 2022-11-12
?
当年话下

TA贡献1890条经验 获得超9个赞

onlyTrashed()方法应该适合您。Laravel 的文档已删除条目不过,我曾见过添加原始 select 语句搞砸了的情况。

select用和取出多余的位,DB::raw然后在您拥有所需内容后添加它们。从最简单的开始:

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

在这里,添加查询的其他部分以查看失败的位置和原因。如果以上没有给您任何信息,也许没有删除的记录?


查看完整回答
反对 回复 2022-11-12
?
达令说

TA贡献1821条经验 获得超6个赞

你可以试试这个。


在您的模型中-


use Illuminate\Database\Eloquent\SoftDeletes;


class ModelName extends Model

{

    use SoftDeletes;

}

仅获取已删除的行


$search = $request->get('search');

$data = App\ModelName::onlyTrashed()

                ->where('id', $search)

                ->get();


查看完整回答
反对 回复 2022-11-12
  • 3 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信