小编Jos*_*hua的帖子

Laravel 4不能掉外键

我试图将外键放在桌子上,但我收到了这条消息:

[Illuminate\Database\QueryException]                                         
  SQLSTATE[42000]: Syntax error or access violation: 1091 Can't DROP 'user_id  
  '; check that column/key exists (SQL: alter table `posts` drop foreign key   
  user_id)   
Run Code Online (Sandbox Code Playgroud)

我正在使用迁移来执行此操作:

Schema::table('posts', function($table) {
            $table->dropForeign('user_id');
            $table->foreign('user_id')
                  ->references('id')->on('users')
                  ->onDelete('cascade');
        }); 
Run Code Online (Sandbox Code Playgroud)

我确信'posts'表中存在'user_id':

 Field      | Type             | Null | Key | Default             | Extra          |
+------------+------------------+------+-----+---------------------+----------------+
| id         | int(10) unsigned | NO   | PRI | NULL                | auto_increment |
| user_id    | int(10) unsigned | NO   | MUL | NULL                |                |
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?这是一个bug还是什么?

------------------
更新:
我发现原因可能是"你试图删除另一个表正在使用的密钥".
这是否意味着我应该放弃那些首先使用'posts'表的表?

php laravel

3
推荐指数
1
解决办法
5566
查看次数

为什么这段代码没有运行?

(function () {
    "use strict";


    function initialize() {
        myList = ['one', 'two', 'three'];
    }

    function displayList() {
        var i, n;
        for (i = 0, n = myList.length; i < n; i += 1) {
            alert(myList[i]);
        }
    }
    initialize();
    displayList();

})();
Run Code Online (Sandbox Code Playgroud)

如果不使用var,myList变量应该被创建为一个全局变量.无论哪种方式,代码都应该运行.代码有什么问题?

javascript scope

2
推荐指数
1
解决办法
650
查看次数

无效数字总是降到0?

cout << "Enter a positive integer or zero: ";
getline(cin, streamStr);
stringstream(streamStr) >> number;
if (!number) {
    cout << "invalid input detected or the input is too big.\n";
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

像"%234"或"sdf2334"这样的输入总是下降到0,这在bool表达式中是假的,但0仍然是一个数字.如何检查输入是否真的像"%234"一样无效?

c++ cin

2
推荐指数
1
解决办法
170
查看次数

为什么cin不识别加号/减号?

char sign = '+';
cout << "Enter '+' for addition or '-' for subtraction: ";
        cin >> sign;
        if ( sign != '+' || sign != '-' ) {
            cout << "you can only enter '+' or '-'!\n";
            return 1;
        }
Run Code Online (Sandbox Code Playgroud)

当我输入"+"或" - "符号时,将显示错误消息.

c++

0
推荐指数
2
解决办法
583
查看次数

标签 统计

c++ ×2

cin ×1

javascript ×1

laravel ×1

php ×1

scope ×1