gpt4 book ai didi

php - 在 Laravel 中播种数据库时找不到表错误

转载 作者:行者123 更新时间:2023-11-29 12:43:05 25 4
gpt4 key购买 nike

我正在使用 way/generators 包在 Laravel 4.2 中生成数据透视表。我收到以下错误,指定表“pricom.roleuser”不存在,但我的数据库中的表名称是“pricom.role_user”。除 role_user 表外,所有其他迁移和种子都工作正常。

[PDOException]
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'pricom.roleuser' doesn't exist

按照 Jeff Way 的建议,我的主 DatabaseSeeder 如下所示

<?php

/**
* Class DatabaseSeeder
*/
class DatabaseSeeder extends Seeder
{

/**
* Run the database seeds.
*
* @return void
*/
public function run()
{


$tables = [
'Users',
'Designations',
'Departments',
'News',
'Organizations',
'Roles',
'RoleUser'
];

Eloquent::unguard();

DB::statement('SET FOREIGN_KEY_CHECKS=0;');

foreach ($tables as $table) {
DB::table($table)->truncate();
}

foreach ($tables as $table) {
$this->call($table . 'TableSeeder');
}

DB::statement('SET FOREIGN_KEY_CHECKS=1;');
}
}

角色用户模型

<?php

class RoleUser extends \Eloquent {
protected $fillable = [];

protected $table='role_user';

}

角色用户播种者

<?php

// Composer: "fzaninotto/faker": "v1.3.0"
use Faker\Factory as Faker;

class RoleUsersTableSeeder extends Seeder {

public function run()
{
$faker = Faker::create();

$roleUsers = [
[
'role_id'=>1,
'user_id'=>1
],
[
'role_id'=>2,
'user_id'=>2
],
[
'role_id'=>3,
'user_id'=>3
]
];


foreach ($roleUsers as $roleUser) {
RoleUser::create($roleUser);
}

foreach(range(1, 300) as $index)
{
RoleUser::create([
'role_id'=>4,
'user_id'=>$index+3
]);
}
}
}

请帮我解决这个问题。

最佳答案

您似乎正在尝试截断一个不存在的名为 RoleUser 的表。您需要从类中获取表的名称。尝试在数据库播种器中更改此位:

foreach ($tables as $table) {
DB::table(with(new $table)->getTable())->truncate();
}

关于php - 在 Laravel 中播种数据库时找不到表错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25845279/

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