创建应用

创建 LaraBBS 应用

composer create-project laravel/laravel larabbs --prefer-dist “9.*”

新增站点

hosts文件
127.0.0.1 larabbs.test

.env 文件

DB_DATABASE=larabbs

APP_NAME=LaraBBS
APP_URL=http://larabbs.test

getenv(‘APP_NAME’)获取
env(‘APP_NAME’, ‘Laravel’)

配置信息

访问配置值

config(‘app.timezone’)

调整配置信息(config/app.php)

  1. 时区
    ‘timezone’ => ‘Asia/Shanghai’,
  2. 默认语言
    ‘locale’ => ‘zh-CN’,

辅助函数

自定义辅助函数

  1. touch app/helpers.php
  2. composer.json
{..."autoload": {"psr-4": {"App\\": "app/","Database\\Factories\\": "database/factories/","Database\\Seeders\\": "database/seeders/"},"files": ["app/helpers.php"]},... }
  1. 修改保存后运行以下命令进行重新加载文件即可
    composer dump-autoload

首页展示

创建控制器

php artisan make:controller PagesController

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PagesController extends Controller
{public function root(){return view('pages.root');} }

绑定路由

Route::get(‘/’, ‘PagesController@root’)->name(‘root’);
laravel-8
取消protected $namespace = ‘App\Http\Controllers’;注释
laravel-9

  1. 定义此控制器方法的路由
    use App\Http\Controllers\PagesController;
    Route::get(‘/’, [PagesController::class,‘root’])->name(‘root’);
  2. 使用原始方法
    修改App\Providers\RouteServiceProvider
...protected $namespace = 'App\\Http\\Controllers';public function boot(){...Route::middleware('web')->namespace($this->namespace)->group(base_path('routes/web.php'));...}

执行数据迁移来创建数据库表结构

php artisan migrate
laravel-9

  1. 报错
    SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table users add unique users_email_unique(email))
  2. 解决
use Illuminate\Support\Facades\Schema;/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{Schema::defaultStringLength(191);
}

验证

快速验证

    public function root(Request $request){try {$validated = $request->validate(['title' => 'required|unique:posts|max:255','body' => 'required',]);}catch (Exception $e){return $e->getMessage();}}

表单请求验证

  1. 创建
    php artisan make:request StorePostRequest
  2. 添加规则
<?phpnamespace App\Http\Requests;use Illuminate\Foundation\Http\FormRequest;class StorePostRequest extends FormRequest
{public function authorize(){return true;}public function rules(){return ['title' => 'required|unique:posts|max:255','body' => 'required',];}public function messages(){return ['title.required' => '标题不能为空','body.required' => '主体不能为空',];}
}
  1. 使用
public function root(StorePostRequest $request)
{}
  1. 异常
<?phpnamespace App\Exceptions;use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Illuminate\Validation\ValidationException;
use Throwable;class Handler extends ExceptionHandler
{...public function render($request,Throwable $e){if($e instanceof ValidationException){$result = ["code"=>400,"msg"=>array_values($e->errors())[0][0],];return response()->json($result,400);}return false;}
}

手动创建

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
...public function root(Request $request){$validator = Validator::make($request->all(), ['captcha' => ['required','min:4']], ['captcha.required' => '验证码不能为空','captcha.min' => '验证码不能少于4位']);if ($validator->fails()) {return array_values($validator->errors()->toArray())[0][0];}}

自定义验证规则

  1. 创建
    php artisan make:rule Uppercase
  2. 修改
<?phpnamespace App\Rules;use Illuminate\Contracts\Validation\Rule;class Uppercase implements Rule
{/*** 确定验证规则是否通过。** @param  string  $attribute* @param  mixed  $value* @return bool*/public function passes($attribute, $value){return strtoupper($value) === $value;}/*** 获取验证错误消息。** @return string*/public function message(){return ':attribute :attribute 需大写';}
}
  1. 使用
    各处rules中
use App\Rules\Uppercase;
...
'name' => ['required', 'string', new Uppercase],
...

L02 Laravel 教程 - Web 开发实战进阶 - 笔记相关推荐

  1. Laravel 教程 - Web 开发实战入门 ( Laravel 5.5 )购买链接

    Laravel 教程 - Web 开发实战入门 ( Laravel 5.5 )购买链接: 推荐给你高品质的实战课程 https://laravel-china.org/courses?rf=15818 ...

  2. Python3教程Web开发实战梳理-day7(看着不错)

    通过前面几天的的努力,ORM框架.Web框架和配置都已就绪,我们可以开始编写一个最简单的MVC,把它们全部启动起来. MVC:Model-View-Controller,中文名"模型-视图- ...

  3. 《Flask Web开发实战:入门、进阶与原理解析》读书笔记

    写在前面 学docker编排,有一个用Flask框架的Demo,感觉挺方便,所以学习下 基于<Flask Web开发实战:入门.进阶与原理解析>做的读书笔记 个人还是比较喜欢看书,看书的话 ...

  4. flask web开发是前端还是后端_Flask Web开发实战:入门、进阶与原理解析 PDF 全格式版...

    给大家带来的一篇关于Flask相关的电子书资源,介绍了关于Flask.Web.开发实战方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小12.2M,李辉编写,目前豆瓣.亚马逊.当当.京东等 ...

  5. springboot thymeleaf配置_【程序源代码】Spring Boot 开发笔记web开发实战1

    关键字:<Spring Boot 开发笔记>系列文章 各位亲爱的小伙伴:大家好! <Spring Boot 开发笔记>系列文章 这套笔记和源码是我自己在学习springboot ...

  6. 《Java Web开发实战》Java工程师推荐的进阶之路

    <Java Web开发实战>一书更加趋于实战性.此教材由浅入深.循序渐进,在语法阐述时尽量避免术语和公式,使初学者能够快速入门,全面掌握实战技能.它既可以作为高等院校本.专科计算机相关专业 ...

  7. go+vue——基于gin框架和gorm的web开发实战

    go+vue--基于gin框架和gorm的web开发实战 gin框架 视频.资料.笔记 安装Go环境, 添加环境变量(可能自动添加好) 下载 Go 环境变量 goland 报错: GOROOT is ...

  8. iPhone与iPad开发实战读书笔记

    iPhone开发一些读书笔记 手机应用分类 1.教育工具 2.生活工具 3.社交应用 4.定位工具 5.游戏 6.报纸和杂志的阅读器 7.移动办公应用 8.财经工具 9.手机购物应用 10.风景区相关 ...

  9. 名师讲坛——Java Web开发实战经典基础篇(JSP、Servlet、Struts、Ajax)

    [书名]<名师讲坛--Java Web开发实战经典基础篇(JSP.Servlet.Struts.Ajax)> [作者]李兴华.王月清 [ISBN]9787302231585 ­}:YKf: ...

最新文章

  1. 国民技术芯片相关产业研发
  2. php 爬虫_Scrapy 爬虫完整案例-基础篇
  3. 拼装sql_3分钟短文 | Laravel复杂SQL超多WHERE子句,本地作用域你没用过
  4. 深度报告:一文看懂生物芯片产业
  5. 健康饮食动起来[我写绿色IT]
  6. jenkins 中 Poll SCM 和 Build periodically 的区别
  7. 概率统计笔记:贝叶斯推断 Bayesian Inference
  8. boost::lambda::constructor用法的测试程序
  9. UIButton设置圆角和边框及边框颜色
  10. javascript学习笔记 null和undefined
  11. java中的链接之其他窗体_两个窗体之间的链接
  12. Activate Windows server 2003 in VMware
  13. 华为云公布2021产品上新计划,让云无处不在,让智能无所不及
  14. php中fastcgi和php-fpm是什么东西
  15. [笔记]远传中继的实现
  16. 06. 区分increment/decrement操作符的前置(prefix)和后置(postfix)形式
  17. 发现一个记录笔记的方法(康奈尔笔记即5R笔记)
  18. python 断言方法
  19. 职业选择与职业规划【转载】
  20. 睦星科技Kolmostar获1000万美元 A 轮融资,将推出更多元的GNSS定位解决方案

热门文章

  1. win10系统下,KMSpico安装过程中出现“无法完成操作,因为文件包含病毒或潜在的垃圾软件”
  2. 树状数组 之 poj 3067
  3. 功率谱(PS)和功率谱密度(PSD)是否一样、谱估计谱图纵轴数值为什么为负
  4. LPC1768 IAR环境下使用完整64K内存的方法
  5. 合并字符串(c++)
  6. krpano场景拖动时拖动惯性消失的问题
  7. Android基本界面元素的使用与讲解
  8. java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法 ? stop() 和 suspend() 方 法为何不推荐使用?
  9. Win 10 运行软件报‘MSCOMCTL.OCX‘缺失怎么办
  10. 华为荣耀8青春版计算机在哪里,华为荣耀8青春版比荣耀8青春在哪里?