2017-06-28 8 views
0

finished_atというテーブルにカスタムの日付列を作成しました。 finished_at列のNULL値がデフォルトで取得されていない持ってソフト削除機能を複製する方法は?

  1. 行:私はsoft deletingようの機能を複製します。
  2. NULLの値を持つ行を取得する場合は、withFinished()をクエリに追加します(ソフト削除の方法はwithTrashed()と同じです)。

どうすればいいですか?

+1

Laravel源が開いています。あなたが適切なクエリで来ることができない場合は、あなたが自分自身を制限することを妨げるものは何ですか? –

答えて

1

モデルクラスでは、SoftDeletes特性を使用して定数を定義し、laravelにカスタムのソフト削除列名を通知します。あなたがwithFinished代わりのwithTrashedを使用したい場合は

class MyModel extends Model 
{ 
    use SoftDeletes; 
    const DELETED_AT = 'finished_at'; 
    ..... 
} 

、あなた自身のCustomSoftDeletes形質を作成し、それにLaravelのSoftDeletes形質を使用することができます。そしてwithFinishedを作成して、withTrashedを呼び出します。しかし、私は、それが単なる実装の詳細なので、そのメソッドの名前を変更する必要があるという点については何の示唆もしていません。

0

あなたのModelのような変更が必要です。

use Illuminate\Database\Eloquent\SoftDeletes; 
use Illuminate\Database\Eloquent\Model; 

class Test extends Model 
{ 
    use SoftDeletes; //<--- use the softdelete traits 

    protected $dates = ['finished_at']; //<--- new field to be added in your table 

    /** 
    * The database table used by the model. 
    * 
    * @var string 
    */ 
    protected $table = 'test'; 

} 
関連する問題