Как справиться с этой ошибкой миграции в laravel? - PullRequest
0 голосов
/ 29 марта 2019

Я работаю в системе ресторана и добавляю таблицу в базу данных, и у меня возникла проблема с create_menus_table Я думаю, что проблема в отношениях между таблицами, но я не могу найти это.

Я попытался удалить их все и снова сделал модели. и проверил, есть ли ошибка в таблицах или нет и удалить базу данных и удалить все модули

ошибка в cmd

** Подсветка \ База данных \ QueryException: SQLSTATE [42000]: синтаксис ошибка или нарушение прав доступа: 1064 У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB для правильный синтаксис для использования рядом с ')' в строке 1 (SQL: изменить таблицу menus добавить ограничение menus_user_id_foreign внешний ключ (user_id) ссылки users ()) в C: \ XAMPP \ HTDOCS \ laravelrestaurantapp \ поставщика \ Laravel \ рамки \ SRC \ Осветите \ Database \ connection.php: 664 660 | // Если при попытке выполнить запрос возникает исключение, мы отформатируем ошибку 661 | // сообщение для включения привязок с SQL, что сделает это исключение 662 | // гораздо полезнее для разработчика, а не только ошибки базы данных. 663 | catch (исключение $ e) {

664 | кинь новое QueryException ( 665 | $ query, $ this-> prepareBindings ($ bindings), $ e 666 | ); 667 | } 668 | Трассировка исключений: 1 PDOException: :( "SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 В вашем SQL-файле есть ошибка синтаксис; проверьте руководство, которое соответствует вашему серверу MariaDB версия для правильного синтаксиса для использования рядом с ')' в строке 1 ") C: \ XAMPP \ HTDOCS \ laravelrestaurantapp \ поставщика \ Laravel \ рамки \ SRC \ Осветите \ Database \ connection.php: 452 2 PDO :: prepare ("изменить таблицу menus добавить ограничение menus_user_id_foreign ссылки на внешние ключи (user_id) users () ") C: \ XAMPP \ HTDOCS \ laravelrestaurantapp \ поставщика \ Laravel \ рамки \ SRC \ Осветите \ Database \ connection.php: 452 Пожалуйста, используйте аргумент -v, чтобы увидеть больше деталей. **

Таблица меню

    <?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateMenusTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('menus', function (Blueprint $table) {
            $table->increments('id');
            $table->string('title')->unique();
            $table->string('type');
            $table->text('description');
            $table->boolean('status');
            $table->string('image');
        // to make relation with the users table as the menu has several users
        // as one to many relationship
        $table->integer('user_id')->unsigned();
        $table->foreign('user_id')->reference('id')->on('users');

        $table->timestamps();
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::drop('menus');
}

}

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

просто ошибка опечатки это ссылки не ссылка $ table-> foreign ('user_id') -> reference ('id') -> on ('users');

$table-> иностранный ( 'user_id') -> ссылки ( 'ID') -> по ( 'пользователей');

0 голосов
/ 29 марта 2019
Schema::table('jobs', function($table) {

            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
        });

попробуйте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...