如何在laravel中根据条件切换模型中的数据库表

rkkpypqq  于 2021-09-29  发布在  Java
关注(0)|答案(2)|浏览(321)

我们有一张table consignments 这就是拥有大数据。因此,为了保持查询速度,我们将旧数据归档到另一个 archive_consignments 但在我们的寄售模式中,当我使用像这样的雄辩时,我希望如此

Consignment::find(1)

首先,它应该尝试从中获取数据 consignments 表如果未找到,则转到 archive_consignments 这是否可能用一个雄辩的模型来定义这件事 Consignment ```

pprl5pva

pprl5pva1#

您可以使用查询生成器进行编写

if(data not found in consignments )
{
     $data = \DB::table('archive_consignments')->here your conditiion to find data
}

希望这将是有用的。

ui7jx7zq

ui7jx7zq2#

我要做的是做一个模型
我还将在存储库中创建一个名为queryconsignment的函数,并将所有条件作为数组传递给ex。 [ 'where' => ['column' => 'name', 'value' => 'someName'], 'whereIn' => ['column' => 'name', 'value' =>['bla','bla'] ] 在QueryConsign里面我会先打电话 $query = Consignment::newQuery() 之后,我将使用循环应用所有这些条件。

foreach($conditons as $method => $conditon){
       $query->$method($condition['column'], $condition['value');
    }
$data = $query->first();

最后,如果寄售货物中没有条目,我会对Archived寄售货物做同样的处理

相关问题