我的Laravel确实存在问题。
我安装了Laravel 5.4。我在全球的Windows上安装了Composer。我php artisan
正在工作,但到处都是错误:
php artisan tinker
当我输入php artisan make:model Brand
时,它显示Model created succesfully.
太棒了吧?当我输入php artisan tinker
和App/Brand::all()
时,它会说“找不到”品牌'。
我的Brand.php
文件夹中有app
:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Brand extends Model
{
//
}
顺便说一下,我正在laracast跟踪this series。
mySQL的
我无法运行mysql
命令,尽管我已经在我的Windows上手动安装了mySQL(全局也是如此)。
它说
'mysql' is not recognized as an internal or external command,
operable program or batch file.
迁移
php artisan migrate
给了我这个错误:
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key
length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key
length is 767 bytes
除此php artisan migrate
工作得很好外,它还为我创建了两个表:迁移和用户。我以为那是因为我的\database\migrations
文件夹中有两个文件。但...
当我说php artisan make:migration create_brands_table --create=brands
时,它确实会在此文件夹中创建一个文件。喜欢它应该。我在up()
函数中添加了几行,所以它看起来像这样:
Schema::table('brands', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->text('description');
$table->timestamps();
});
但它没有创建表格。
请注意,我编辑了.env
文件以建立正确的数据库连接,否则php artisan migrate
将无法使用php artsian migrate
命令创建的其他两个表。< / p>
它只给出了一个alreadt存在的错误。我尝试了迁移:rollback和migrate:刷新。我尝试在composer dump-autoload
命令之后执行此操作,但结果相同。
我在黑暗中迷失了,我显然是Laravel的新手,但是我的一些熟悉Laravel的朋友从来没有遇到过我遇到过的问题。
我试图重新安装并创建一个新项目,但是......猜测:结果相同。
答案 0 :(得分:2)
您的命名空间错误,请使用反斜杠:App\Brand
要创建表格,请使用Schema::create
而不是Schema::table
mysql部分不是Laravel关注的问题,不应该出现在这个问题中。无论如何,你应该检查你的环境PATH变量。
答案 1 :(得分:2)
关于已经存在的表问题,我之前遇到过这个问题,首先是删除数据库文件,在我的情况下我使用的是sqlite,所以我的文件是database.sqlite ,我删除了创建一个新的(不要永久删除它以防万一),正常运行您的迁移以确保所有内容都适用于普通表,同时删除旧的Brand迁移,然后,当您为Brands表创建新的迁移时,丢失--create
标志
就像这个php artisan make:migration create_brands_table
一样,此时如前所述,使用Schema::create
代替Schema::table
,希望现在一切正常。