如何从Laravel的表中获取所有行(没有软删除)?
我用laravel 5.3如何从Laravel的表中获取所有行(没有软删除)?
我用这个:https://github.com/jenssegers/laravel-mongodb
我laravel雄辩是这样的:
$data = Employee::select('id', 'name', 'salary', 'description')
->find($id);
我的模式是这样的:
<?php
namespace App\Models;
use Eloquent as Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
use Jenssegers\Mongodb\Eloquent\HybridRelations;
class Employee extends Eloquent
{
use HybridRelations;
use SoftDeletes;
protected $connection = 'mongodb';
public $table = 'employees';
protected $dates = ['deleted_at'];
...
}
的问题是,当执行时,软删除项目出现在那里。哪里不对?
您使用了错误的特质use Illuminate\Database\Eloquent\SoftDeletes;
只适用于在Laravel雄辩模型。
对于Jenssegers \ MongoDB的,你需要使用:
use Jenssegers\Mongodb\Eloquent\SoftDeletes;
非常感谢。有用 –
您可以覆盖Employee
类中的toArray()
方法。
function toArray() {
return [
'id' => $this->id,
'name' => $this->name,
'salary' => $this->salary,
...etc // dont put deleted_at here
]
}
我已经添加它。但它不起作用。软删除的项目仍然出现在那里 –
试试这个:'$ data = Employee :: find($ id)''不使用'select' –
这是一样的。这是行不通的。 toArray方法用于什么? –
你需要排除他们在选择 – AshokGK
@Panda,你是什么意思? –
您是否在迁移中添加了$ table-> softDeletes()? – stefansixx1