ホームページ > バックエンド開発 > PHPチュートリアル > Laravel の基本的な移行の分析

Laravel の基本的な移行の分析

不言
リリース: 2023-04-02 22:02:01
オリジナル
2968 人が閲覧しました

1. 移行では、データ テーブルが作成され、Seeder データベースにデータが設定されます。

データベース移行は、データベースの バージョン管理のようなものです。これにより、チームはアプリケーションの データベース構造を簡単に変更して共有できます

1.1 移行の作成

php artisan make:migration create_users_table --create=users

php artisan make:migration add_votes_to_users_table --table=users //添加字段
ログイン後にコピー

新しい移行ファイルは database/migrations# に配置されます# # ディレクトリ。各移行ファイルの名前には、Laravel が移行の順序を確認できるようにするための タイムスタンプ が含まれています。
--table および --create オプションを使用して、データ テーブルの名前、または移行の実行時に新しいデータ テーブルを作成するかどうかを指定できます。 。

1.2 移行の構造

通常、移行クラスには

updown という 2 つのメソッドが含まれます。 up メソッドは新しいデータ テーブル、フィールド、またはインデックスをデータベースに追加できますが、down メソッドは up メソッドの逆の操作です。これら 2 つの方法で Laravel データベース構造ジェネレーターを使用して、データ テーブルを作成および変更できます。

1.2.1 データ テーブルの作成

/**
     * 运行数据库迁移
     *
     * @return void
     */
    public function up()
    {
        Schema::create('flights', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name')->comment('字段注解');
            $table->string('airline')->comment('字段注解');
            $table->timestamps();
        });
    }

    /**
     * 回滚数据库迁移
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('flights');
    }
ログイン後にコピー

1.2.2 テーブルにフィールドを追加

Laravel の基本的な移行の分析

##データ テーブル、フィールド、インデックス :

https://laravel-china.org/doc...1.3 移行の実行

すべての未処理の移行の実行:

php 職人移行

1.4 移行のロールバック

最後の移行をロールバックするには、

rollback

コマンドを使用できます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">php artisan migrate:rollback php artisan migrate:rollback --step=5 //回滚迁移的个数 php artisan migrate:reset //回滚应用程序中的所有迁移 php artisan migrate:refresh // 命令不仅会回滚数据库的所有迁移还会接着运行 migrate 命令 php artisan migrate  //恢复</pre><div class="contentsignin">ログイン後にコピー</div></div>1.5 Seeder メソッドを使用してデータをデータベース

1.5.1 シーダーの作成

php artisan make:seeder UsersTableSeeder
ログイン後にコピー

1.5.2 データベースの充填

 /**
     * 运行数据库填充
     *
     * @return void
     */
    public function run()
    {
        DB::table('users')->insert([
            'name' => str_random(10),
            'email' => str_random(10).'@gmail.com',
            'password' => bcrypt('secret'),
        ]);
    }
ログイン後にコピー

Laravel の基本的な移行の分析

モデル ファクトリ クラスを使用してバッチでデータをテストする

php artisan make:factory PostFactory -m Post // -m 表示绑定的model
ログイン後にコピー

Laravel の基本的な移行の分析

Laravel の基本的な移行の分析#1.5.3 他のシーダーを呼び出す

DatabaseSeeder 内

クラスでは、call メソッドを使用して他の seed クラスを実行できます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">/**  * Run the database seeds.  *  * @return void  */ public function run() {     $this-&gt;call([         UsersTableSeeder::class,         PostsTableSeeder::class,         CommentsTableSeeder::class,     ]); }</pre><div class="contentsignin">ログイン後にコピー</div></div>1.5.4 Seeders の実行

デフォルトでは、

db:seed

コマンドは DatabaseSeeder クラスを実行します。このクラスは、次の呼び出しに使用できます。他の シード クラス。ただし、--class オプションを使用して、特定の seeder クラスを指定することもできます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">php artisan db:seed php artisan db:seed --class=UsersTableSeeder</pre><div class="contentsignin">ログイン後にコピー</div></div>

mite:refresh

も使用できます。コマンドを使用してデータベースにデータを追加します。これにより、すべての移行がロールバックされ、再実行されます。このコマンドを使用してデータベースを再構築できます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">php artisan migrate:refresh --seed</pre><div class="contentsignin">ログイン後にコピー</div></div> 2. モデル

モデルを作成します:

php artisan make:model Models/Goods
php artisan make:model Models/Goods -m  //同时生成对应的migration文件
ログイン後にコピー

Laravel の基本的な移行の分析

Laravel の基本的な移行の分析

Laravel の基本的な移行の分析

#3. ルーティングLaravel の基本的な移行の分析

ルートをバッチで作成: (リソース ルーティング)

php artisan make:controller UserController --resource
Route::resource('user', 'UserController'); //批量一次性定义`7`个路由
ログイン後にコピー

独自のフィールドに基づく詳細を取得するための値。SEO に有益です。


Laravel 5.5 Nginx 設定: Laravel の基本的な移行の分析root /example.com/public;

location / {

    try_files $uri $uri/ /index.php?$query_string;
}
ログイン後にコピー

location = /favicon.ico { access_log オフ; log_not_found オフ; }
location = /robots.txt { access_log オフ; log_not_found オフ; }

4. 確認

4.1 クイック検証

#4.2 フォームリクエストの検証

#

php artisan make:request StoreBlogPost
ログイン後にコピー
Laravel の基本的な移行の分析

#相違点と注意事項

1. find と getLaravel の基本的な移行の分析

find: 主キーを介して指定されたデータを返します

$result = Student::find(1001);
ログイン後にコピー

get - 複数のデータ結果をクエリします

DB::table("表名")->get();
DB::table("表名")->where(条件)->get();
ログイン後にコピー

2.模型与数据表的绑定

创建Model类型,方法里面声明两个受保护属性:$table(表名)和$primaryKey(主键)

<?php namespace App;   
use Illuminate\Database\Eloquent\Model;
class Student extends Model{
    protected $table = &#39;student&#39;;
    protected $primaryKey = &#39;id&#39;;
}
ログイン後にコピー

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

以上がLaravel の基本的な移行の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート