2017-04-12 30 views
0

我用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']; 
    ... 
} 

的問題是,當執行時,軟刪除項目出現在那裏。哪裏不對?

+0

你需要排除他們在選擇 – AshokGK

+0

@Panda,你是什麼意思? –

+0

您是否在遷移中添加了$ table-> softDeletes()? – stefansixx1

回答

2

您使用了錯誤的特質use Illuminate\Database\Eloquent\SoftDeletes;只適用於在Laravel雄辯模型。

對於Jenssegers \ MongoDB的,你需要使用:

use Jenssegers\Mongodb\Eloquent\SoftDeletes; 
+0

非常感謝。有用 –

0

您可以覆蓋Employee類中的toArray()方法。

function toArray() { 
    return [ 
     'id'  => $this->id, 
     'name'  => $this->name, 
     'salary' => $this->salary, 
     ...etc // dont put deleted_at here 
    ] 
} 
+0

我已經添加它。但它不起作用。軟刪除的項目仍然出現在那裏 –

+0

試試這個:'$ data = Employee :: find($ id)''不使用'select' –

+0

這是一樣的。這是行不通的。 toArray方法用於什麼? –

相關問題