windows下使用comporser
1.下载comporser ,安装
下载地址: https://getcomposer.org/download/
2.检查是否安装好了
a)win+R 打开cmd 面板
b)左下角输入 cmd 打开cmd 面板
输入:composer 回车即可
3.使用
创建应用(进入我们放置网站代码的位置)
i)安装laravel安装器(需要翻墙)
composer global require "laravel/installer"
提示:Changed current directory to C:/Users/Administrator/AppData/Roaming/Composer 不用管
原因:是因为composer本身去国外的网站下载了,因为某些原因,导致无法下载,稍等一会就好
命令:laravel new myshop 创建
ii)不需要翻墙的方案
步骤:
全局配置(推荐)
直接在cmd界面执行以下命令即可
局部配置
在指定网站目录下执行以下命令
区别:全局是指对所有的项目,都采用了镜像,局部是指对当前项目采用了镜像安装
命令:composer config -g repo.packagist composer https://packagist.phpcomposer.com
通过命令创建应用:composer create-project --prefer-dist laravel/laravel myshop
###怎么看我们安装的laravel的版本?###
进入myshop下的composer.json查看即可
4.开始开发
一键安装包地址:www.golaravel.com/download
github下载地址:https://github.com/laravel/laravel
Laravel初始化配置
1.php版本 >= 5.5.9
2.开启rewrite和vhost
httpd.conf文件
3.开启php拓展
php.ini
a)php_openssl.dll
b)php_mbstring.dll
c)php_pdo_mysql.dll
参考文档与起步
中文文档:laravelacademy.org/laravel-docs-5_2
英文文档:laravel.com/docs/5.2
目录结构
HTTP基础路由
1)请求-》路由-》控制器《-》模型《-》数据库
2) 控制器-》视图
3) 路由-》视图
路由设置
Http/routers.php
//1.一个参数
// Route::get('user/{id}', function ($id) {
// echo "User ".$id;
// });
//2.默认参数
// Route::get('user/{id?}', function ($id=0) {
// echo "User ".$id;
// });
//3.多个参数
// Route::get('user/{id}/content/{content}', function ($id,$content) {
// echo "User ".$id.' content '.$content;
// });
//4.多个参数,只能最后一个参数默认值
// Route::get('user/{id}/content/{content?}', function ($id,$content='china') {
// echo "User ".$id.' content '.$content;
// });
//5.正则约束
// Route::get('user/{id}', function ($id) {
// echo $id;
// })->where('id', '[0-9]+');
// Route::get('user/{id}', function ($id) {
// echo "User ".$id;
// });
Route::get('/hd', function () {
echo "get";
});
Route::post('/hd', function () {
return "post";
});
Route::put('/hd', function () {
return "put";
});
Route::delete('/hd', function () {
return "delete";
});
Route::patch('/hd', function () {
return "patch";
});
Route::options('/hd', function () {
return "options";
});
Route::match(['get', 'post'], '/test', function () {
echo "match";
});
Route::any('foo', function () {
echo "foo";
});
控制器
新建控制器
1)手动创建
找到Http/Controllers,新建UserController.php
内容如下:
namespace App\Http\Controllers;
class IndexController extends Controller{
public function index(){
echo 'ffdsafasd';
}
}
2)命令创建
直接从cmd进入网站的根目录J:\www\myshop执行如下命令即可
php artisan make:controller UserController
控制器-》视图的过程 需要在router.php中配置
Route::get('test','IndexController@index');
解析:
IndexController是控制器
index是方法
路由命名
1.
Route::get('test',['as'=>'profile',function(){
echo route('profile'); //http://www.myshop.com/test
return "<h1>命名路由</h1>";
}]);
2.
Route::group(['namespace' => 'Admin'], function(){
// 控制器在 "App\Http\Controllers\Admin" 命名空间下
Route::group(['prefix' => 'admin'], function () {
// 匹配 "/admin/users" URL
Route::get('user', ['uses' => 'UserController@index', 'as' => 'name']);
Route::get('index', ['uses' => 'IndexController@index', 'as' => 'index']);
Route::get('login', ['uses' => 'IndexController@login', 'as' => 'index']);
});
});
等效于下面的配置
Route::group(['prefix' => 'admin','namespace' => 'Admin'], function(){
Route::get('user', ['uses' => 'UserController@index', 'as' => 'name']);
Route::get('index', ['uses' => 'IndexController@index', 'as' => 'index']);
Route::get('login', ['uses' => 'IndexController@login', 'as' => 'index']);
});
资源控制器
查看路由列表
php artisan route:list
Route::resource('article', 'ArticleController');
路由中间件
新建中间件
php artisan make:middleware AdminLogin
#中间件其实就是在路由上层加了一层保护或过滤
视图
#如何把结果输出到网页中
1)直接在路由中分配视图
Route::get('/view',function(){
return view('my_laravel');
});
2)在控制器中分配视图
return view('my_laravel');
数据传递
1)with
例子:return view('my_laravel')->with('name',$name);
2)传参
例子:
$data=[
'name'=>'Hello World',
'age'=>20,
];
return view('my_laravel',$data);
3)compact
例子:
$data=[
'name'=>'Hello World',
'age'=>20,
];
$title="我的网站";
return view('my_laravel',compact('data','title'));
Blade模板引擎基础用法
1){{$name}} //变量输出
2)@{{$name}} //原样输出
3){{$name or 'default'}} //默认值
4){{isset($name)?$name:'Default'}} //默认值
5){!! $str !!} //执行script
Blade模板引擎流程控制
1)if判断
@if($data['age']>10)
哈哈哈
@else
嘿嘿
@endif
2)for循环
@for($i=0;$i<=$data['num'];$i++)
{{$i}}<br>
@endfor
3)foreach
@foreach($arr as $v)
{{$v}}<br>
@endforeach
4)forelse 是对foreach的补充
@forelse($arr as $v)
{{$v}}<br>
@empty
没有数据
@endforelse
Blade模板引擎子视图
1.通过include包含
@include('common.header', ['page' => '首页'])
2.模板替换
a)建立主模板,并建立可替换区域
@section('content')
<p>我是主模板</p>
@show
b)在子模板中使用
@extends('layouts.layouts')
@section('content')
<div class="content">
<h2>文章列表</h2>
</div>
@endsection
.env配置文件
数据库连接及基本数据
判断数据库是否连接成功
$pdo = DB::connection()->getPdo();
dd($pdo);