我试图返回一个没有删除行的表(软删除)这是我的代码
public function getMailRecipients($meoId){ return DB::table('mail_recipients')->where('meo_id', '=', $meoId)->select('name', 'email')->get(); }
字符串但是我得到了所有的行,即使是那些通过软删除删除的行,我还应该添加什么来避免这种情况?
4zcjmb1e1#
如果你正在使用查询构建器(facade DB),那么你应该这样做:
DB::table('mail_recipients')->where('meo_id', '=', $ meoId)->whereNull('deleted_at')->select('name', 'email')->get();
字符串如果使用模型,则必须使用SoftDeletes trait
class Flight extends Model{ use SoftDeletes; }
型在文档https://laravel.com/docs/8.x/eloquent#soft-deleting中查看更多信息
btqmn9zl2#
注 *:使用Eloquent时,软删除功能有效。如果您使用查询生成器查询结果,您最终会看到所有记录都被丢弃或未被丢弃。你可以试试这个:
public function getMailRecipients($meoId) { return DB::table('mail_recipients') ->whereNull('deleted_at') ->where('meo_id', $meoId) ->get(['name', 'email']); }
字符串
guicsvcw3#
如果你来到这里是因为你在模型中使用了protected $softDelete = true,而Laravel似乎忽略了它,那么解决方案是在模型中使用use Illuminate\Database\Eloquent\SoftDeletes。每次都有效!
protected $softDelete = true
use Illuminate\Database\Eloquent\SoftDeletes
3条答案
按热度按时间4zcjmb1e1#
如果你正在使用查询构建器(facade DB),那么你应该这样做:
字符串
如果使用模型,则必须使用SoftDeletes trait
型
在文档https://laravel.com/docs/8.x/eloquent#soft-deleting中查看更多信息
btqmn9zl2#
注 *:使用Eloquent时,软删除功能有效。如果您使用查询生成器查询结果,您最终会看到所有记录都被丢弃或未被丢弃。
你可以试试这个:
字符串
guicsvcw3#
如果你来到这里是因为你在模型中使用了
protected $softDelete = true
,而Laravel似乎忽略了它,那么解决方案是在模型中使用use Illuminate\Database\Eloquent\SoftDeletes
。每次都有效!