Eloquent:在WhereIn

问题描述 投票:0回答:2

在我的代码中,我创建了一个修改器并生成列 chiave_composita。如果我运行这段代码我就获得了数据

TransazioniOrigine::all()->pluck('chiave_composita')->toArray()

但是如果我使用这个代码

    $origine = TransazioniOrigine::all()->pluck('chiave_composita')->toArray();
    $destinazione = Transazioni::all()->pluck('transazioneKey')->toArray();
    $diff = array_diff($origine, $destinazione);
    dd(TransazioniOrigine::whereIn('chiave_composita', $diff)->get());

我有这个错误:

Il nome di colonna 'chiave_composita' non è valido。 (SQL: select * from [vwTransazioni] where [chiave_composita] in (1515152021011110))

我该如何解决这个问题?

谢谢

php laravel eloquent
2个回答
1
投票

不能

whereIn
与访问器一起使用。数据库不知道它们。

可以做的是

filter
生成的集合。

TransazioniOrigine::get()->filter(fn($t) => in_array($t->chiave_composita, $diff));

0
投票

感谢总督!!!根据您的建议,我已经解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.