#author("2025-01-27T20:45:56+09:00","default:pengwei","pengwei") #author("2025-01-27T20:48:13+09:00","default:pengwei","pengwei") *[[php/laravel]] [#i0620a83] #contents **一、環境構築 [#a65bd2da] 参考官网文档 : https://laravel.com/ バージョン統計 : https://laravelversions.com/ja blog(in ubuntu) : https://zenn.dev/gz/scraps/ab396d8cb89fa3 laravel9学習サイト : https://chikaraemon.com/wordpress/2022/06/04/laravel1/ laravel10学習サイト: https://rinsaka.com/laravel10/ ※API開発手法あり laravel11学習リファレンス: https://laravel.com/docs/11.x/events laravel11学習ブログ : https://readouble.com/laravel/11.x/ja/events.html laravelToDolist実践 : https://zenn.dev/eguchi244_dev/books/laravel-tutorial-books/viewer/laravel-introduction ***docker下构筑服务环境 [#h413c1ea] 我已经在阿里云仓库构建好php8.2-apache的docker镜像,接下来会以这个为基础来构筑laravel环境。 https://wiki.weihuasoftware.com/img/php-laravel_1728714818295.png 拉取镜像 docker pull crpi-2smyd2bqklermvrk.cn-chengdu.personal.cr.aliyuncs.com/jackxzhou-images/php8.2-apache:latest 检查镜像是否pull到本地 docker images https://wiki.weihuasoftware.com/img/php-laravel_1728715033198.png 本地拉起容器实例子 docker run --name laravel --network my_network -v /Users/zhouxun/Documents/www/php8.2:/var/www/html -p 8000:8000 -d php8.2-apache:latest https://wiki.weihuasoftware.com/img/php-laravel_1728715291737.png 宿主机查询容器的内网ip(后续拉起laravel web服务需要用到) docker inspect laravel https://wiki.weihuasoftware.com/img/php-laravel_1728715573128.png IPAddress:172.18.0.2 (以自己本地环境为准) 进入容器 docker exec -it laravel bash https://wiki.weihuasoftware.com/img/php-laravel_1728715852735.png 安装composer curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer composer -v 出现以下画面表示已安装成功 https://wiki.weihuasoftware.com/img/php-laravel_1728716122241.png 以上服务环境已准备好。下面开始laravel项目创建阶段 **二、创建laravel项目 [#vc8df210] composer create-project --prefer-dist laravel/laravel comment_app https://wiki.weihuasoftware.com/img/php-laravel_1728717416001.png 默认会创建你php版本相匹配的版本,当然你也可以指定需要的版本,这里直接默认 切换进入创建的项目目录 cd comment_app/ https://wiki.weihuasoftware.com/img/php-laravel_1728717488280.png 初始化db(这里db直接使用sqlite进行后续...) 切换到项目的database目录执行touch database.sqlite初始化sqlite (默认情况下创建新项目时会生成,不需要单独执行,就情况而定) 打开vscode,打开对应的项目目录(docker拉起时指向的本地目录) https://wiki.weihuasoftware.com/img/php-laravel_1728718155708.png 修改.env https://wiki.weihuasoftware.com/img/php-laravel_1728718263272.png 拉起laravel的web服务 php artisan serve --host=172.18.0.2 --port=8000 https://wiki.weihuasoftware.com/img/php-laravel_1728718517335.png 浏览器访问:http://localhost:8000/ (docker laravel容器拉起时,容器里的8000端口映射到本地的0.0.0:8000端口) https://wiki.weihuasoftware.com/img/php-laravel_1728718626475.png 出现以上画面表示laravel项目搭建成功! **三、初始开发案例 [#g1a34bbb] 这里会创建一张记录评论信息的表,进行增、删除、查询、修改的的简单逻辑的案例 ***创建数据表迁移文件 [#f57a86d4] 在Laravel中,通过迁移文件进行表的制作、变更、回退等数据库的操作。 首先我们生成comment评论表,迁移文件的生成使用php artisan命令:php artisan make:migration create_comments_table --create=comments https://wiki.weihuasoftware.com/img/php-laravel_1728878336840.png 对应/database/migrations/目录下生成table迁移文件2024_10_14_035816_create_comments_table.php. https://wiki.weihuasoftware.com/img/php-laravel_1728890747114.png https://wiki.weihuasoftware.com/img/php-laravel_1728890932152.png 修改table迁移文件,新加标题和内容字段 https://wiki.weihuasoftware.com/img/php-laravel_1728891166963.png ***通过迁移文件生成数据表 [#f97e7bbf] 要在数据库中创建表,请执行php artisan migrate命令。根据这个命令,从database/migrations/目录中的迁移文件中,只执行还没有执行的迁移文件。 为了确认哪个文件正在执行,请执 行php artisan migrate:status命令。 另外,为了恢复迁移的执行(即回退),请执行php artisan migrate:rollback命令。 https://wiki.weihuasoftware.com/img/php-laravel_1728891718557.png https://wiki.weihuasoftware.com/img/php-laravel_1728891815525.png https://wiki.weihuasoftware.com/img/php-laravel_1728891827854.png 1、php artisan migrate 执行迁移,db里生成对应数据表 2、php artisan migrate:status 查看迁移状态 3、php artisan migrate:rollback 回退已执行迁移 执行迁移后,数据库里已生成了对应的comments表 https://wiki.weihuasoftware.com/img/php-laravel_1728892080193.png ***通过seeder创建测试数据 [#kbcfb443] 执行php artisan make:seeder CommentsTableSeeder,生成seeder文件 https://wiki.weihuasoftware.com/img/php-laravel_1728892576900.png https://wiki.weihuasoftware.com/img/php-laravel_1728892648149.png https://wiki.weihuasoftware.com/img/php-laravel_1728892661172.png 修改seed文件,创建测试数据 https://wiki.weihuasoftware.com/img/php-laravel_1728892936381.png 修改DatabaseSeeder.php文件 https://wiki.weihuasoftware.com/img/php-laravel_1728893084559.png 要将测试数据写入数据库,如下所示执行php artisan db:seed命令。根据情况,也可以确认迁移的状态后再执行。 https://wiki.weihuasoftware.com/img/php-laravel_1728893216739.png 注释:要单独执行某个seeder可以在后面加对应参数:--class=类名 即可 ***创建model 模型文件 [#xf508f7b] 在Laravel中,模型、视图、控制器等MVC各自分担各自的角色。模型负责数据结构及其操作的角色。 执行命令php artisan make:model 模型名,来制作模型,会在app/Mdels/生成对应model https://wiki.weihuasoftware.com/img/php-laravel_1728893791771.png https://wiki.weihuasoftware.com/img/php-laravel_1728893984663.png https://wiki.weihuasoftware.com/img/php-laravel_1728894001870.png 模型名请注意使用开头大写字母的单个数字表(数据库的小写名字,例如数据表名字为comments对应model名为Comment)。 ***创建控制器Controller [#z5052b6b] 创建CommentsController使用命令:php artisan make:controller CommentsController,在app/Http/Controllers/目录下生成CommentsController.php,如下 https://wiki.weihuasoftware.com/img/php-laravel_1728894208753.png https://wiki.weihuasoftware.com/img/php-laravel_1728894433412.png https://wiki.weihuasoftware.com/img/php-laravel_1728894446653.png 修改CommentsController,添加index方法 https://wiki.weihuasoftware.com/img/php-laravel_1728894602576.png ***创建路由 [#c0723f86] 检查当前生效的路由配置执行:php artisan route:list 在还没有追加任何东西的初始状态下,会有以下结果 https://wiki.weihuasoftware.com/img/php-laravel_1728894786220.png 打开web路由配置文件/route/web.php https://wiki.weihuasoftware.com/img/php-laravel_1728895027933.png 以上代码表示:对于/的请求,定义了调用名为welcome的视图。具体的意思是调用名为resources/views/welcome.blade.php的文件(视图文件) 在这个routes/web.php中指定/comments的URI时,试着设定调用CommentsController的index函数。 https://wiki.weihuasoftware.com/img/php-laravel_1728895351278.png 启动web服务:php artisan serve --host=172.18.0.2 --port=8000 访问http://localhost:8000/comments,web返回如下 https://wiki.weihuasoftware.com/img/php-laravel_1728895557540.png ***从评论表comments查询数据展示到视图 [#o71158aa] 修改控制器代码 https://wiki.weihuasoftware.com/img/php-laravel_1728895881906.png 在视图resources/views目录中制作comments子目录,创建index.blade.php文件 https://wiki.weihuasoftware.com/img/php-laravel_1728896083592.png 再次访问http://localhost:8000/comments,web返回如下 https://wiki.weihuasoftware.com/img/php-laravel_1728896136090.png ***查询单条数据详情 [#d405f7da] comment控制器新增show方法 https://wiki.weihuasoftware.com/img/php-laravel_1728896440089.png 新增查询单条详情路由配置 https://wiki.weihuasoftware.com/img/php-laravel_1728896618214.png 在视图resources/views目录中制作comments子目录,创建show.blade.phpコピー文件 https://wiki.weihuasoftware.com/img/php-laravel_1728896715943.png 访问http://localhost:8000/comments/1,页面返回 https://wiki.weihuasoftware.com/img/php-laravel_1728896802015.png ***新增评论功能 [#a6f9fb53] 修改路由,新加评论路由 https://wiki.weihuasoftware.com/img/php-laravel_1728897056187.png 修改resources/views/comments/index.blade.php文件,追加评论入口 https://wiki.weihuasoftware.com/img/php-laravel_1728897301490.png 控制器新增store方法 https://wiki.weihuasoftware.com/img/php-laravel_1728897397812.png 访问http://localhost:8000/comments https://wiki.weihuasoftware.com/img/php-laravel_1728897520487.png 页面输入评论信息,点击提交后,评论信息写入 https://wiki.weihuasoftware.com/img/php-laravel_1728897646584.png https://wiki.weihuasoftware.com/img/php-laravel_1728897730448.png ***修改评论 [#v0997129] 修改resources/views/comments/show.blade.php文件,新增修改入口 https://wiki.weihuasoftware.com/img/php-laravel_1728898322373.png 修改控制器,新增edit方法 https://wiki.weihuasoftware.com/img/php-laravel_1728898400189.png 新加视图文件 resources/views/comments/edit.blade.php https://wiki.weihuasoftware.com/img/php-laravel_1728898579498.png 控制器新增update方法,用于更新内容 https://wiki.weihuasoftware.com/img/php-laravel_1728898753859.png 添加路由 https://wiki.weihuasoftware.com/img/php-laravel_1728898993607.png 提交验证 https://wiki.weihuasoftware.com/img/php-laravel_1728899057711.png 点击编辑进入编辑页面 https://wiki.weihuasoftware.com/img/php-laravel_1728899134473.png 编辑内容后点击提交 https://wiki.weihuasoftware.com/img/php-laravel_1728899214058.png 更新后跳转页面,内容已变更,修改成功 https://wiki.weihuasoftware.com/img/php-laravel_1728899310196.png ***删除评论 [#a9d869ee] 修改路由,新增删除路由 https://wiki.weihuasoftware.com/img/php-laravel_1728899460278.png 修改视图resources/views/comments/show.blade.php,新增删除入口 https://wiki.weihuasoftware.com/img/php-laravel_1728899594151.png 修改控制器,新增destroy删除方法 https://wiki.weihuasoftware.com/img/php-laravel_1728899672422.png 访问页面 https://wiki.weihuasoftware.com/img/php-laravel_1728899807736.png 点击删除,跳转到列表页面,数据已被删除 https://wiki.weihuasoftware.com/img/php-laravel_1728899985351.png 以上了解后,就可以简单开发我们需要的功能了。 **四、多表关系实现案例 [#ca465e26] 待补充... **五、laravel api案例开发 [#pc13e655] 待补充...