I'm new to Laravel. I've made a seeder file, and there is a for loop in it. I want to set the room_type based on the $i value, but it does not work.
This is the seeder file:
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class RoomTableSeeder extends Seeder
{
public function run(): void
{
for($i=0;$i<15;$i++) {
\App\Models\Room::create([
"room_type" =>
if($i == 4){"single_bed"}elseif($i == 9){"twin_bed"}else{"third_bed"}, //It doesn't work.
}
"status" => 0]);
}
}
}
This is the error I get:
ParseError
syntax error, unexpected token "if"
at database/seeders/RoomTableSeeder.php:19
15▕ for($i=0;$i<15;$i++) {
16▕
17▕ \App\Models\Room::create([
18▕ "room_type" =>
➜ 19▕ if($i == 4){"single_bed"}elseif($i == 9){"twin_bed"}else{"third_bed"},
20▕ }
21▕ "status" => 0]);
22▕ }
23▕ }
+1 vendor frames
2 [internal]:0
Composer\Autoload\ClassLoader::loadClass()
+7 vendor frames
10 database/seeders/DatabaseSeeder.php:15
Illuminate\Database\Seeder::call()
If you really want to go this way, you can use an immediately invokeable function as the expression value.
I've used
matchhere as opposed to severalifstatements for readability.