外部キー制約時は、「型」+「属性」共に一致している必要がある点に注意
[参考資料] https://qiita.com/0w0/items/4a9cb7d27794bfb93d46
increments()で作ったカラムには、実は裏でunsined(符号無し)属性が付与される。 要は採番項目なので正の値しか登録できないわけだが、 役割テーブル側のuser_idとauthority_idには同様の制約を付けていない。 つまり、形式の不一致で落ちている。
まさにこれにハマっていた。
unsigned()メソッドで処理して解決。
dropForeignの指定を間違えて、マイグレーション:ロールバックが実行できない
[参考資料] https://readouble.com/laravel/5.1/ja/migrations.html
外部キーを削除するには、dropForeignメソッドを使用します。 他のインデックスで使用されるものと似た命名規則が、 外部キーにも使用されています。 つまりテーブル名とカラム名をつなげ、"_foreign"を最後につけた名前になります。
postsテーブルのuser_idカラムから、
usersテーブルのidに紐付けた外部キー制約を外すには、
public function down() { }
$table->dropForeign('posts_user_id_foreign');
として、解決。