我在表格中有一个模型和现成的数据。在这个模型中,我添加了一个新字段并与另一个表建立了连接。
为了不为每条记录手动填写这些字段,我想创建一个迁移,它将自动为所有记录填写此字段。
关系表有两个字段:post_id和author_id。
我正在尝试这样做:
$posts = Posts::find()->all();
foreach ($posts as $index => $post) {
for($i = 0, $j = 0; $i < $index; $j++, $i++) {
if ($j >= 4) {
break;
}
$item = new PostAuthor();
$item->setAttribute('post_id', $posts->id);
$item->setAttribute('author_id', $j + 1);
$item->save();
}
}
或:
$posts = Posts::find()->all();
foreach ($posts as $index => $post) {
for($i = 0; $i < $index && $i < 4; $i++) {
$item = new PostAuthor();
$item->setAttribute('post_id', $posts->id);
$item->setAttribute('author_id', $i + 1);
$item->save();
}
}
但是我得到了同样的结果,只有当 j 达到 4 时,循环才不会再次开始,它会添加从 1 到 4 的所有其他内容:
是否可以让我在屏幕截图中圈出的帖子 ID 重新开始循环??
您可以在发出 ajax 请求之前保存 URL 字符串,然后在收到并处理响应后,您可以将不需要的 URL 替换为您保存的旧 URL。这可以用
window.history.pushState()
来完成