php 限制for循环中的条目数

xu3bshqb  于 2023-02-21  发布在  PHP
关注(0)|答案(1)|浏览(143)

我有一个模型和一个表中的现成数据。在这个模型中,我添加了一个新字段,并与另一个表建立了连接。
为了不需要为每条记录手动填写这些字段,我希望创建一个迁移,自动为所有记录填写此字段。
关系表有两个字段:帖子ID和作者ID。

$posts = Posts::find()->all();

foreach ($posts as $index => $post) {
    for($i = 0; $i < $index; $i++ ) {
        $item = new PostAuthor();
        $item->setAttribute('post_id', $posts->id);
        $item->setAttribute('author_id', $i+1);
        $item->save();
    }
}

现在一切正常了,author_id的最大数量将等于post的数量,也就是说,对于第一个post,它将是author_id:1,对于第二个author_id:1和作者ID:2,依此类推,最多6个author_id。
我可以限制$index的值,使其最大值为4吗?当author_id为4时,循环从1重新开始。

vd2z7a6w

vd2z7a6w1#

$posts = Posts::find()->all();

foreach ($posts as $index => $post) {
    for($i = 0; $j=0; $i < $index; $i++ ) {
        if ( $j > 4 ) {
        $j = 0;
        }
        $item = new PostAuthor();
        $item->setAttribute('post_id', $posts->id);
        $item->setAttribute('author_id', $j+1);
        $item->save();
    }
}

相关问题