質問

elomoent ormを使用したSQLからの同等のマイナス操作はありますか?

例えば

です

$ MODEL1= MODEL ::ここで(「いくつかの制約が適用」) $ MODEL2= MODEL ::ここで(「いくつかの制約が適用されている」)

$ MODEL1に存在するが$ MODEL2

ではないすべてのモデルを取得したいです。

役に立ちましたか?

解決

SeBlazeの答えは3つのクエリを実行しますが、よさそうです。別のオプションは、コレクションオブジェクトのdiff()メソッドです。

$result = $model1->diff($model2);
.

DBからのデータを2つのクエリでフェッチした後に機能しますが、データのセット(「制約が適用されている」)。

他のヒント

私が見る最も簡単な方法:

//Get the id's of first model as array
$ids1 = $model1->lists('id');

//get the id's of second models as array
$ids2 = $model2->lists('id');

//get the models
$models = Model::whereIn('id',$ids1)->whereNotIn('id',$ids2)->get();
.

これはテストされていませんコードは、elomoent queries こちら

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top