奥丁9
奥丁9
后端
数据库
redis
mysql
mongoDB
达梦
php
laravel
laravel-admin
dcat
表单
表格
java
spring
python
go
c
c++
前端
vue
nodejs
sass/less
html/css
前端框架
javascript
微信生态
公众号
小程序
uniapp
typescript
其他
AI
数据结构
安全
linux
seo
git
健身
算法
正则表达式
docker
待分类
后端
/
php
/
laravel
laravel基础
1年前
aoding9
67
php
laravel
## 先安装composer - 详细步骤: https://pkg.phpcomposer.com/#how-to-install-composer - 首先确保path里面的php版本 php -v是否正确,然后执行命令 - php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" - php composer-setup.php ### 配置全局composer - 找到并进入 PHP 的安装目录(和你在命令行中执行的 php 指令应该是同一套 PHP)。 - 将 composer.phar 复制到 PHP 的安装目录下面,也就是和 php.exe 在同一级目录。 - 在 PHP 安装目录下新建一个 composer.bat 文件,并将下列代码保存到此文件中。 ``` @php "%~dp0composer.phar" %* ``` 双击composer.bat将composer添加到环境变量中,然后新开一个终端窗口,执行`composer --version`看是否出来 ### 修改镜像为阿里云的,比较靠谱点 ``` composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ ``` ## 安装laravel 安装步骤以及常见问题: https://www.jianshu.com/p/279d2f549886 - composer create-project --prefer-dist laravel/laravel blog - 指定版本: composer create-project --prefer-dist laravel/laravel=5.5.28 ./项目名 ### 启动测试 - 进入项目目录下,执行`php artisan serve `然后打开弹出的链接 ### 配置apache虚拟主机 ```conf <VirtualHost *:80> DocumentRoot "C:/Users/aoding9/Desktop/php2021/code/laravel/hello/blog/public" ServerName hello.com # ServerAlias 域名别名 ServerAlias *.hello.com # 这几个Fcgi是用来配置php多版本共存的 FcgidInitialEnv PHPRC "D:/phpstudy_pro/Extensions/php/php7.3.4nts" AddHandler fcgid-script .php FcgidWrapper "D:/phpstudy_pro/Extensions/php/php7.3.4nts/php-cgi.exe" .php # 目录权限 <Directory "C:/Users/aoding9/Desktop/php2021/code/laravel/hello/blog/public"> # Options FollowSymLinks +/-Indexes是否允许查看目录 +和-二选一,-表示禁止,+表示允许 Options FollowSymLinks ExecCGI # 是否使用apache分布式配置文件 AllowOverride All # 先允许后禁止 Order allow,deny # 允许所有,2个都是,2.4以上用require了,Require all denied则禁止 Allow from all Require all granted </Directory> </VirtualHost> ``` - 修改hosts文件:win+r输入drivers快速打开系统目录,进入etc,修改hosts ``` 127.0.0.1 hello.com ``` - 还可以配置伪静态,这样url就可以省略index.php的入口文件了 - 在public目录创建.htacess文件: ``` <IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> RewriteEngine On # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule> ``` ### 如果是拉取的laravel,会缺少.env和vendor目录(默认忽略提交) - 办法1:将env和htaccess添加到gitignore的不忽略中去 - 办法2: - 复制.env.example改名为.env - 执行php artisan key:generate生成密钥 - .htaccess也可能没有,手动创建 ```php // Route类静态调用方法,第一个参数是url,第二个参数是回调函数 或者 字符串的控制器方法 // url的第一个/可以省略(如果只有斜杠则不可以省略) Route::get('/', function () { // echo '回调函数里面可以return 也可以执行其他的代码'; return view('welcome'); }); # 限制请求类型:get post any(全部可以访问) macth(指定几个类型都可以访问) # 用get访问时报错:The GET method is not supported for this route. Supported methods: POST. Route::post('home',function(){ return date('Y-m-d'); }); // 路由参数,{id}或者{id?} 分别表示必传参数和可选参数,用回调函数接收路由参数,可选参数需要在回调函数中给定参数默认值 Route::get('home2/{id}', function ($id1) { return "$id1"; }); Route::get('home3/{id?}', function ($id=0) { return "$id"; }); // 传统的方式:/home4?id=123 Route::get('home4',function(){ return $_GET['id']; }); // 路由别名: 调用路由对象的name方法,别名要唯一 // 在视图里面调用时,写成route('别名') Route::get('/home1', function () { return view('welcome'); }) -> name('bieming'); // 用artisan查看路由列表和别名 // php artisan route:list // 路由组允许你在大量路由之间共享路由属性,例如中间件,而不需要为每个路由单独定义这些属性。 Route::group( ['prefix'=>'admin',], // ['prefix'=>'admin','middleware'=>'xxxx'], function () { Route::get('login',function(){ // 匹配/admin/login return '/admin/login'; }); Route::get('user/add',function(){ // 匹配/admin/user/add return '/admin/user/add'; }); } ); // 路由前缀 写法2 Route::prefix('admin2')->group( function () { Route::get('edit', function () { return '/admin/edit'; }); Route::get('add', function () { return '/admin/add'; }); } ); ```
本作品采用
《CC 协议》
,转载必须注明作者和本文链接