<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 數據庫 —— 填充數據 ## 1、簡介 Laravel包含了一個簡單方法來填充——使用填充類和測試數據。所有的填充類都位于`database/seeds`目錄。填充類的類名完全由你自定義,但最好還是遵循一定的規則,比如可讀性,例如`UserTableSeeder`等等。安裝完Laravel后,會默認提供一個`DatabaseSeeder`類。從這個類中,你可以使用`call`方法來運行其他填充類,從而允許你控制填充順序。 ## 2、編寫填充器 要生成一個填充器,可以通過[Artisan命令](http://laravelacademy.org/post/170.html)`make:seeder`。所有框架生成的填充器都位于`database/seeders`目錄: ~~~ php artisan make:seeder UserTableSeeder ~~~ 一個填充器類默認只包含一個方法:`run`。當Artisan命令`db:seed`運行時該方法被調用。在`run`方法中,可以插入任何你想插入數據庫的數據,你可以使用[查詢構建器](http://laravelacademy.org/post/126.html)手動插入數據,也可以使用Eloquent[模型工廠](http://laravelacademy.org/post/238.html#model-factories)。 舉個例子,讓我們修改Laravel安裝時自帶的`DatabaseSeeder`類,添加一個數據庫插入語句到`run`方法: ~~~ <?php use DB; use Illuminate\Database\Seeder; use Illuminate\Database\Eloquent\Model; class DatabaseSeeder extends Seeder{ /** * 運行數據庫填充 * * @return void */ public function run() { DB::table('users')->insert([ 'name' => str_random(10), 'email' => str_random(10).'@gmail.com', 'password' => bcrypt('secret'), ]); } } ~~~ ### 2.1 使用模型工廠 當然,手動指定每一個模型填充的屬性是很笨重累贅的,取而代之的,我們可以使用模型工廠來方便的生成大量的數據庫記錄。首先,查看[模型工廠文檔](http://laravelacademy.org/post/238.html#model-factories)來學習如何定義工廠,定義工廠后,可以使用幫助函數`factory`來插入記錄到數據庫。 舉個例子,讓我們創建50個用戶并添加關聯關系到每個用戶: ~~~ /** * 運行數據庫填充 * * @return void */ public function run(){ factory('App\User', 50)->create()->each(function($u) { $u->posts()->save(factory('App\Post')->make()); }); } ~~~ ### 2.2 調用額外的填充器 在`DatabaseSeeder`類中,你可以使用`call`方法執行額外的填充類,使用`call`方法允許你將數據庫填充分解成多個文件,這樣單個填充器類就不會變得無比巨大,只需簡單將你想要運行的填充器類名傳遞過去即可: ~~~ /** * 運行數據庫填充 * * @return void */ public function run(){ Model::unguard(); $this->call(UserTableSeeder::class); $this->call(PostsTableSeeder::class); $this->call(CommentsTableSeeder::class); } ~~~ ## 3、運行填充器 編寫好填充器類之后,可以使用Artisan命令`db:seed`來填充數據庫。默認情況下,`db:seed`命令運行可以用來運行其它填充器類的`DatabaseSeeder`類,但是,你也可以使用`--class`?選項來指定你想要運行的獨立的填充器類: ~~~ php artisan db:seed php artisan db:seed --class=UserTableSeeder ~~~ 你還可以使用`migrate:refresh`命令來填充數據庫,該命令還可以回滾并重新運行遷移,這在需要完全重建數據庫時很有用: ~~~ php artisan migrate:refresh --seed ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看