Laravel Eloquent Modal - 第一排?

时间:2016-08-08 11:52:12

标签: php mysql laravel eloquent

在播种器文件里面我尝试获取用户模型的第一条记录。 但是我似乎无法找到正确的方法。

我想获取第一个用户,并获取其ID以在user_id(外键)中使用它。

这不起作用:

class TerminalsTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
    $user = User::findOrFail(1)->first();

    DB::table('terminals')->delete();
    Terminal::create([
        'serial' => 'R-123-548-753',
        'state' => 1,
        'user_id' => $user->id
    ]);


   }
}

失败是因为我说“1”,但它需要一个参数,我在用户的第一行没有id为1,但我不想对此进行硬编码。

2 个答案:

答案 0 :(得分:1)

简单的解决方案是使用 firstOrFail

$user = User::firstOrFail(); //it will return the first record from the top
Terminal::create([
  'serial' => 'R-123-548-753',
  'state' => 1,
  'user_id' => $user->id'
])

答案 1 :(得分:0)

您必须先检查找到的第一个用户

$user = User::first(); //  returns the first record found in the database. If no matching model exist, it returns null
if($user)
    Terminal::create([
      'serial' => 'R-123-548-753',
      'state' => 1,
      'user_id' => $user->id
    ]);
}

如果用户找到,那么它将在终端中创建新记录。