我的Laravel出了点问题

时间:2017-04-07 15:39:44

标签: php mysql laravel composer-php artisan

我的Laravel确实存在问题。

我安装了Laravel 5.4。我在全球的Windows上安装了Composer。我php artisan正在工作,但到处都是错误:

php artisan tinker

当我输入php artisan make:model Brand时,它显示Model created succesfully. 太棒了吧?当我输入php artisan tinkerApp/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的朋友从来没有遇到过我遇到过的问题。

我试图重新安装并创建一个新项目,但是......猜测:结果相同。

2 个答案:

答案 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,希望现在一切正常。