如何更好的组织你的Laravel模型
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
我經(jīng)常發(fā)現(xiàn)自己希望在Laravel應(yīng)用程序中獲得更多關(guān)于模型的結(jié)構(gòu)。
默認(rèn)情況下,模型位于 App 命名空間內(nèi),如果你正在處理大型應(yīng)用程序,這可能會變得非常難以理解。所以我決定在 App\Models 命名空間內(nèi)組織我的模型。
更新用戶模型
要做到這一點(diǎn),你需要做的第一件事就是將 User 模型移動到 app/Models 目錄并相應(yīng)地更新命名空間。
這要求你更新引用 App\User 類的所有文件。
第一個是 config/auth.php:
'providers' => ['users' => ['driver' => 'eloquent','model' => App\Models\User::class, // 修改這里],],第二個是 config/services.php 文件:
'stripe' => ['model' => App\Models\User::class, // 修改這里'key' => env('STRIPE_KEY'),'secret' => env('STRIPE_SECRET'),],最后,修改 database/factories/UserFactory.php 文件:
$factory->define(App\Models\User::class, function (Faker $faker) {... });生成模型
現(xiàn)在我們已經(jīng)改變了 User 模型的命名空間,但是如何生成新的模型。正如我們所知,默認(rèn)情況下它們將被放置在 App 命名空間下。
為了解決這個問題,我們可以擴(kuò)展默認(rèn)的 ModelMakeCommand :
<?php namespace App\Console\Commands; use Illuminate\Foundation\Console\ModelMakeCommand as Command; class ModelMakeCommand extends Command {/*** Get the default namespace for the class.** @param string $rootNamespace* @return string*/protected function getDefaultNamespace($rootNamespace){return "{$rootNamespace}\Models";} }并通過將以下內(nèi)容添加到 AppServiceProvider 中來覆蓋服務(wù)容器中的現(xiàn)有綁定:
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use App\Console\Commands\ModelMakeCommand; class AppServiceProvider extends ServiceProvider {/*** Bootstrap any application services.** @return void*/public function boot(){//}/*** Register any application services.** @return void*/public function register(){$this->app->extend('command.model.make', function ($command, $app) {return new ModelMakeCommand($app['files']);});} }以上就是需要修改的。現(xiàn)在我們可以繼續(xù)生成模型,就像我們在我們的終端中使用的一樣:php artisan make:model Order,它們將位于 App\Models 命名空間中。
希望你能使用它!
更多PHP知識,可前往PHPCasts
轉(zhuǎn)載于:https://my.oschina.net/u/172914/blog/1809396
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的如何更好的组织你的Laravel模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dispose方法的使用
- 下一篇: ant design form表单的时间