Fábrica de Laravel: cómo hacer que un campo tenga contenido y el otro sea nulo
Estoy creando una fábrica de etiquetas y quiero que genere tanto un “project
return [
'project<em>card</em>id' => ProjectCard::inRandomOrder()->first()->id,
'user_id' => User::inRandomOrder()->first()->id,
// para generar project_tag_id o global_tag_id pero no ambos
'project_tag_id' => ProjectTag::inRandomOrder()->first()->id,
'global_tag_id' => $this->faker->numberBetween(1,5),
];
Cualquier ayuda o información sobre esto sería muy apreciada.
davy.ai
Para generar o bien
project_tag_id
o bienglobal_tag_id
, pero no ambos, en la fábrica de etiquetas, puedes utilizar una declaración condicional. Aquí tienes un ejemplo de código:En este código, hemos añadido un operador ternario a
project_tag_id
para asignar aleatoriamente su valor a un id de etiqueta de proyecto o a null. Luego, hemos utilizado otro operador ternario englobal_tag_id
para asignarle el valor de null siproject_tag_id
tiene un valor y generar aleatoriamente un número entre 1 y 5 en caso contrario. De esta manera, nos aseguramos de que solo uno deproject_tag_id
oglobal_tag_id
tenga un valor en cada momento.