繁体   English   中英

Laravel fromTable不适用于模型更新或创建功能

[英]Laravel fromTable not working on model updateOrCreate function

我试图在使用更新或创建功能时更改模型的表,但它始终使用默认的数据库表,即“支出”。我正在尝试使用fromTable函数将表更改为“天际”。

$cluster_payout = 'skyrim';
    $user_payout = Payout::fromTable($cluster_payout)->updateOrCreate(
    ['user_id' => 1],
    ['game_id' => 1, 'locked' => 1]);

执行代码后,它将使用“支出数据库”和“支出表”。

如果我做

Payout::fromTable($cluster_payout)->first();

它将使用带有Skyrim表的Payout数据库。 有任何想法吗?

您尝试过这种方式吗?

(new Payout)->setTable($cluster_payout)
    ->updateOrCreate(
        ['user_id' => 1],
        ['game_id' => 1, 'locked' => 1]
    );

通过执行以下操作修复了该问题:

$payout_cluster['payout'] = 'skyrim';
$payout = (new Payout)->setTable($payout_cluster['payout'])->where('user_id', $user_id)->first();

if(!$payout) {
    $payout = (new Payout)->setTable($payout_cluster['payout']);
    $payout->fill(['user_id' => $user_id,'cluster_id' => $cluster_id,'game_id' => $game_id,'locked' => $status]); 
    $payout->save();
    }else{
        $payout->setTable($payout_cluster['payout']);
        $payout->user_id = $user_id;
        $payout->cluster_id = $cluster_id;
        $payout->game_id = $game_id;
        $payout->locked = $status;
        $payout->update();
        return($payout);
    }

我使用了@ Adoudeh87的代码并将其改编成自己的代码。 谢谢A c:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM