在laravel

时间:2017-04-12 14:18:14

标签: php mysql laravel

我有三张桌子,分别是比赛,比赛和比赛。池。 Rounds表有一个外键tournament_id,Pools表有一个round_id外键。我有一个表格,我可以同时创建一个圆形和一个池。我通常使用$ request将数据添加到数据库使用特定控制器的存储功能。

示例:这是在PoolController中。

public function store(Request $request)
{
    $pool = new Pool;
    $pool->name = $request->poolName;
    // $pool->round_id = $request->Roundname;

    $pool->save();

    return redirect('/admin');
}

这里我不知道如何处理round_id。按下“创建”按钮时,必须同时创建新轮次和池,并且必须将该轮次ID分配给$ pool-> round_id。

请帮忙吗?

2 个答案:

答案 0 :(得分:0)

我终于开始工作了。我为圆形创作做了这个。为此我们需要首先创建锦标赛。然后在Round Controller中我做了以下代码

use App\Round;
use App\Tournament;

public function store(Request $request)
{
    $round = new Round;
    $round->name = $request->roundName;

    $tournament = new Tournament;
    $tournamentName = $request->tournamentName;
    $tournament = $tournament::where('name', $tournamentName)->firstOrFail();
    $tournament->rounds()->save($round);

    return redirect('/admin');
}

这里round有一个名为tournament_id的外键。这是如何工作的,当插入新一轮我们正在通过

找到相应的锦标赛
$tournament = $tournament::where('name', $tournamentName)->firstOrFail();

然后我们在锦标赛模型中调用关系函数rounds()以在更新外键时保存新一轮

答案 1 :(得分:0)

要保存多个外键,请使用aRRAY

$tournament = [
          'document_id' => $tournament->id,
            'name' => tournamentName   
   ];