• 从零开始laravel


    通过composer创建项目

    composer create-project --prefer-dist laravel/laravel blog "6.*"

     部分

    # 创建数据表迁移
    #php artisan make:migration create_blog_posts_table --create=blog_posts
    
    # 运行迁移
    #php artisan migrate
    
    # 回滚变更
    #php artisan migrate:rollback
    
    # 创建自定义sql
    #...
    
    # 生成模型
    php artisan make:model ModelsBlogBlogPosts
    
    # 测试数据填充
    php artisan make:factory BlogPostsFactory --model=Models/Blog/BlogPosts
    # 填充类
    php artisan make:seeder BlogPostsTableSeeder
    # 允许填充命令
    php artisan db:seed
    
    # 控制器
    php artisan make:controller BlogBlogController
    
    
    ###
    
    ##
    # laravel 6.^ 中文提示包
        composer require "overtrue/laravel-lang:~3.0"
        完成上面的操作后,将项目文件 config/app.php 中的下一行
        IlluminateTranslationTranslationServiceProvider::class,
        替换为:
        OvertrueLaravelLangTranslationServiceProvider::class,
        # 将语言包发布到项目中
        php artisan lang:publish zh-CN
        composer remove "overtrue/laravel-lang"
    # 另一种方式[成功]
    composer require caouecs/laravel-lang:~3.0
    根据需要复制语言包到 resources/lang 目录中。
    ->lang->zh-CN.json
    ->lang->zh-CN文件夹
    
    # 认证系统
    composer require laravel/ui:^1.0 --dev
    php artisan ui bootstrap --auth
    # php artisan ui vue --auth
    # php artisan ui react --auth

     自定义认证,在注册的时候会默认检测users表,发现users不存在的情况需要修改AuthRegisterController中的

    laravel中模型关联的总结

    // 多个情况下返回模型集合 IlluminateDatabaseEloquentCollection
                    // dd($model->orderGoods);
                    // 单个情况下返回具体模型
                    // dd($orderGoods->goods);
                    // 返回关联 IlluminateDatabaseEloquentRelationsHasMany
                    // dd($model->orderGoods());
                    // 返回关联 IlluminateDatabaseEloquentRelationsBelongsTo
                    // dd($model->goods());
                    // 关联还可以作为查询语句构造器使用
                    // AppPost::find(1)->comments()->where('title', 'foo')->first();
                    // 模型对应数据库的一条数据

    监听SQL

    php artisan make:listener QueryListener --event=IlluminateDatabaseEventsQueryExecuted

    生成./app/Listeners/QueryListener.php

    <?php
    
    namespace AppListeners;
    
    use IlluminateContractsQueueShouldQueue;
    use IlluminateDatabaseEventsQueryExecuted;
    use IlluminateQueueInteractsWithQueue;
    use IlluminateSupportFacadesLog;
    
    class QueryListener
    {
        /**
         * Create the event listener.
         *
         * @return void
         */
        public function __construct()
        {
            //
        }
    
        /**
         * Handle the event.
         *
         * @param  QueryExecuted  $event
         * @return void
         */
        public function handle(QueryExecuted $event)
        {
            if (env('APP_ENV', 'production') == 'local') {
                $sql = str_replace("?", "'%s'", $event->sql);
                $log = vsprintf($sql, $event->bindings);
                Log::info($log);
            }
        }
    }

    ./app/Providers/EventServiceProvider.php:19

     生成日志文件

     

    laravel自动注入练习

    public function index(Content $content)
        {
            app(OptionService::class, ['id'=>1, 'a'=>2])->update();
    
            return $content
                ->title($this->title())
                ->description('网站全局内容基本选项设置')
                ->body(new OptionForm());
        }

    其中 app(OptionService::class, ['id'=>1, 'a'=>2])->update(); 代码表示调用OptionService这个类实例的update方法

    其中OptionService有一个需要注入的参数,放到最前面,后面是一个id和a参数需要以关联数组的方式传入

    namespace AppServicesCms;
    
    use AppModelsCmsOption;
    
    class OptionService
    {
        protected $option;
        public function __construct(Option $option, $id, $a)
        {
            dd($option, $id, $a);
            $this->option = $option;
        }
    
    
    }

    laravel,多对多的测试

  • 相关阅读:
    ASP.NET Routing Debugger
    浏览器 CSS & JS Hack 手册
    基于vmWare5.5环境的VxWorks系统安装总结
    TFS 迁移到 Git
    关于websocket
    自定义单一模块Model类
    学习 C++的用途
    Navigation Controllers and Table Views(中)
    Mac环境下svn的使用
    减少.NET应用程序内存占用的一则实践
  • 原文地址:https://www.cnblogs.com/jiangxiaobo/p/13596112.html
Copyright © 2020-2023  润新知