我是使用Laravel和Eloquent的新手,我曾经在php我的php项目中使用Symfony2和Doctrine2,所以我在使用Eloquent时遇到了一些问题因为我认为它与ORM Doctrine2不同,所以不浪费更多时间,这是我的问题:
迁移文件:
测验表格迁移文件:
public function up()
{
Schema::create('quizzes', function (Blueprint $table) {
$table->increments('id');
$table->text('title');
$table->text('description')->nullable();
});
}
选项表格迁移文件:
public function up()
{
Schema::create('choices', function (Blueprint $table) {
$table->increments('id');
$table->text('title')->nullable();
$table->text('description')->nullable();
$table->integer('quiz_id');
});
}
quizzes_english:
public function up()
{
Schema::create('quizzes_english', function (Blueprint $table) {
});
}
choices_english:
public function up()
{
Schema::create('choices_english', function (Blueprint $table) {
});
}
这两个文件不包含任何列,因为我在模型中使用了继承(QuizEnglish扩展了Quiz,ChoiceEnglish扩展了Choice),但我不确定这是正确的思维方式!
底线=>当我使用命令php artisan migration时,我得到一个PDOException,所以我认为,因为我是Laravel / Eloquent中的新手,问题可能很明显,我无法看到它:p
编辑: 我运行php artisan migrate命令时得到的消息:
[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in y se near ') default character set utf8 collate utf8_unicode_ci' at line 1 (SQL: [PDOException] SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in y se near ') default character set utf8 collate utf8_unicode_ci' at line 1
提前致谢。
答案 0 :(得分:1)
您创建模型基于迁移(数据库表)而非相反。
Schema::create('quizzes_english', function (Blueprint $table) {});
Schema::create('choices_english', function (Blueprint $table) {});
您需要在此处提供列。或删除它们。