在Laravel中控制数据库是通过使用迁移。使用工匠创建迁移:
php artisan make:migration create_first_table --create=first_table
这将生成类CreateFirstTable。在up方法内,您可以创建列:
<?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateFirstTable extends Migration { public function up() { Schema::create('first_table', function (Blueprint $table) { $table->increments('id'); $table->string('first_string_column_name'); $table->integer('secont_integer_column_name'); $table->timestamps(); }); } public function down() { Schema::drop('first_table'); } }
最后,要运行所有迁移类,您可以运行artisan命令:
php artisan migrate
这将在数据库中创建表和列。其他有用的迁移命令是:
php artisan migrate:rollback -回滚上一次数据库迁移
php artisan migrate:reset -回滚所有数据库迁移
php artisan migrate:refresh -重置并重新运行所有迁移
php artisan migrate:status -显示每次迁移的状态
修改现有表
有时,您需要更改现有的表结构(如renaming/deleting列)。您可以通过创建新的migration.AndInup方法来完成迁移。
//重命名列。 public function up() { Schema::table('users', function (Blueprint $table) { $table->renameColumn('email', 'username'); }); }
上面的例子中,将重命名email column的users table到username。而下面的代码username从users表中删除一列。
重要提示:要修改列,您需要向doctrine/dbal项目composer.json文件添加依赖项并运行composer update以反映更改。
//落柱 public function up() { Schema::table('users', function (Blueprint $table) { $table->dropColumn('username'); }); }
为什么在larawer上创建一个新项目后,每次我试图刷新控制台中的迁移时,我都会看到它 [Illuminate\Database\QueryException]SQLState[42000]:语法错误或访问冲突:1071指定的键太长;最大密钥长度为767字节es(SQL:alter table添加unique()) [PDOException]SQLState[42S01]:基表或视图已存在:10
迁移cache分页 仓库地址: cache 安装 composer require illuminate/cache 暂时实现 redis方式 还需安装 composer require illuminate/redis composer require predis/predis //个人比较喜欢predis 启动predis function frameInitialized() {
我不明白迁移中的选项会产生什么影响。 我可以看到数据库中的列是用默认值定义的,但是模型完全忽略了它。假设我有一个反映数据库中表的模型。我必须迁移才能创建books表: 当我创建一个新的模型实例时,我看到: 默认值被忽略,属性设置不正确。好的,我可以得到它,因为它是一个新对象,它不应该从数据库中获取默认值。但是如果我试图保存模型,比如: 在数据库的字段中保存0! 那么,迁移中的选项有什么意义呢? 顺
迁移pagination分页 仓库地址: pagination 安装 composer require illuminate/pagination 我们可以用illuminate/pagination分页了 $users = User::paginate(15); //在你的模板 {!! $users->links() !!} 然后你将看到一堆莫名其妙的错误,没关系,让我们来解决它。既然不能像l
迁移数据库ORM层 迁移模板Blade 迁移分页 迁移验证器 迁移Cache
我买了新的MacBook Pro,我在其中安装了mysql,然后安装sequel Pro来查看表和数据库,但是当我命令时,这个错误指控错误图像 近30个小时来,我一直在忍受这个问题,有人能帮我看一下吗