gpt4 book ai didi

laravel - 运行迁移时执行查询 - Laravel

转载 作者:行者123 更新时间:2023-12-02 20:33:22 25 4
gpt4 key购买 nike

我不确定迁移是否是最佳解决方案,但我会解释我的问题......

我需要运行一个例程来填充数据库中的新列,基本上这个例程将抓取所有没有值(value)的记录,执行流行的函数...

这个脚本只会使用一次,就在我添加默认为空的列之后,添加列后它将填充字段......

注意:表中已经有记录

实现预期结果的最佳方法是什么?

我尝试过:

public function up()
{

$allCategories = Category::where('slug', null)->get();

foreach($allCategories as $singleCategory ){
$singleCategory->update([
'slug' => Category::makeSlug( $singleCategory->name, $singleCategory->parent_id)
]);
}
}

但这不起作用

最佳答案

您应该能够将数据添加到新迁移中的新字段。我不确定这是否是最好的方法,但我以前见过这样的事情:

public function up()
{
Schema::table('my_table', function (Blueprint $table) {
$table->string('my_column')->nullable();
});
$this->updateData();
}

private function updateData()
{
$allCategories = Category::where('slug', null)->get();

foreach($allCategories as $singleCategory) {
$singleCategory->update([
'slug' => Category::makeSlug($singleCategory->name, $singleCategory->parent_id)
]);
}
}

假设您的类别模型已命名并且 Category::makeSlug() 存在,这应该会更新您的 null slugs。

关于laravel - 运行迁移时执行查询 - Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47916018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com