我在从Laravel应用程序中删除一些外键时遇到问题.问题是当我尝试回滚迁移时:
php artisan migrate:rollback
Run Code Online (Sandbox Code Playgroud)
我不知道为什么我在控制台中有错误:
[Illuminate\Database\QueryException] SQLSTATE [42000]:语法错误或访问冲突:1091无法DROP'rope_user_user_id_foreign'; 检查列/密钥是否存在(SQL:alter table
role_userdrop foreign keyrole_user_user_id_foreign)[Doctrine\DBAL\Driver\PDOException] SQLSTATE [42000]:语法错误或访问冲突:1091无法DROP'rope_user_user_id_foreign'; 检查列/键是否存在
[PDOException] SQLSTATE [42000]:语法错误或访问冲突:1091无法DROP'rope_user_user_id_foreign'; 检查列/键是否存在
下面我展示了我的迁移类:
class UpdateRoleUserTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
schema::table('role_user',function(Blueprint $table){
$table->foreign('user_id')->references('id')->on('users');
$table->foreign('role_id')->references('id')->on('roles');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('role_user', function (Blueprint $table) {
$table->dropForeign('role_user_user_id_foreign');
$table->dropForeign('role_user_role_id_foreign');
});
}
}
Run Code Online (Sandbox Code Playgroud)
我的数据库表已由迁移类创建:
class CreateRoleUserTable extends Migration
{ …Run Code Online (Sandbox Code Playgroud) 我有 Laravel 6.0 和类似的东西,使用request()->all();助手在数据库上创建一个新行......
$input = request()->all();
Service::create($input);
Run Code Online (Sandbox Code Playgroud)
我想手动添加两个变量,这样我们就不需要用户手动添加它们。我尝试过这方面的变化......
$time = time();
$input = array_merge(request()->all(), ['serviceSite' => 'companyname', 'serviceOrderedTime' => $time]);
Service::create($input);
Run Code Online (Sandbox Code Playgroud)
有没有办法用request()助手来做到这一点,还是我必须使用替代方法?