Laravel Factory:如何使一个字段具有内容而另一个字段为空

Posted

技术标签:

【中文标题】Laravel Factory:如何使一个字段具有内容而另一个字段为空【英文标题】:Laravel Factory : How to make one field have content and the other one be null 【发布时间】:2022-01-16 00:55:36 【问题描述】:

我正在创建一个标签工厂,我希望它生成 project_tag_id 或 gobal_tag_id 但不能同时生成

return [
    'project_card_id' => ProjectCard::inRandomOrder()->first()->id,
    'user_id' => User::inRandomOrder()->first()->id,

    // to genreate project_tag_id or global_tag_id but not both
    'project_tag_id' => ProjectTag::inRandomOrder()->first()->id,
    'global_tag_id' => $this->faker->numberBetween(1,5),
  ];

对此的任何帮助或见解将不胜感激

【问题讨论】:

【参考方案1】:

如果 rand 函数返回甚至插入 project_tag_id 则调用 Random 函数,否则返回 global_tag_id 所以,

$number=rand(0,10);
if($number % 2 == 0)
  arr['project_tag_id'] => ProjectTag::inRandomOrder()->first()->id;
  arr['global_tag_id'] => null;
else
   arr['project_tag_id'] => null;
   arr['global_tag_id'] => $this->faker->numberBetween(1,5);

【讨论】:

欢迎您.... if (rand(0, 1)) 是的,看起来不错。

以上是关于Laravel Factory:如何使一个字段具有内容而另一个字段为空的主要内容,如果未能解决你的问题,请参考以下文章

Laravel factory 使用指引

如何使laravel中的动态表单字段可填写

如何在 Laravel 5 上获取具有关系的字段的名称?

如何在 Laravel 中数据库种子 JSON 字段?

如何使唯一数组的自定义验证规则依赖于其他字段 laravel

具有唯一字段的 Laravel 验证服务