Laravel fromTable没有处理模型updateOrCreate函数

时间:2017-05-23 20:43:58

标签: php mysql laravel eloquent

我正在尝试在使用更新或创建功能时更改模型表,但它总是使用默认的数据库表,即" Payouts" 我正在尝试将表格更改为" skyrim"通过使用fromTable函数。

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

执行代码后,它使用支付数据库和支付表。

如果我这样做

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

它将Payback数据库与Skyrim表一起使用。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

你有这样的尝试吗?

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

答案 1 :(得分:0)

通过执行以下操作来修复它:

$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: