1.安装composer
composer create-project laravel/laravel <yourprojectname>
cd your project name
php artisan serve
目录结构
目录结构重要文件
2.Artisan命令
常用artisan命令.png独家定制的命令行工具快速生成Laravel常用文件和相关相关配置
3.路由
定义路由
app/Http/routes.php
- 第一种方式 返回字符串
Route::get('/hello', function () {
return '<h2>Hello world!!!</h2>';
});
- 第二种方式
- 在resource文件夹下创建welcome.blade.php 就可以渲染
Route::get('/hello', function () { return view('welcome') });
- 在web.php 下定义运行指定Controller的方法 (
下面的例子就是运行PageController下的定义的about方法
)Route::get('/about','PageController@about');
- 在web.php 下定义所有方法
Route::resource('posts','PostController'); // 这是PostController下定义的所有方法 class PageController extends Controller { public function index(){ $title = 'Welcome to Index'; // return view('pages.index',compact('title')); return view('pages.index')->with('title',$title); } public function about(){ $title = 'Welcome to About'; return view('pages.about')->with('title',$title); } public function service(){ $data = array( 'title' =>'Services', 'name' =>['Aili','Taylor','Jone'] ); return view('pages.services')->with($data); } }
- 在resource文件夹下创建welcome.blade.php 就可以渲染
路由方法
POST GET DELETE PUT
除此之外还有match
Route::match(['get', 'post'],'/foo', function () {
// 该路由将匹配 get 和 post 方法的 'foo' url
});
路由参数
Route::get('name/{name}/age/{age}', function ($name, $age) {
return 'Im '.$name.' ,and I
m '.$age;
});
路由 正则限制路由、命名路由、路由群组
4.控制器
php artisan make:controller UserController
打开就会看到默认创建的6个方法index() create() store() show() edit update destroy。
,也就是CURD(增删改查)
Route::get('/user/name', 'UserController@name');
在UserController下创建name方法
控制器依赖注入
use App\Http\Requests;
use App\Http\Controllers\Controller;
5.中间件
对请求加限制,只允许某些请求能够到达控制器 中间件就起作用了。
例如 Auth验证用户的身份 如果用户未通过身份验证 中间件将会把用户导向登录页面,反之中间件将此请求通过且接着往下执行
内置了很多中间件,包括维护、身份验证、CSRF保护 中间件都会放在app/Http/Middleware
创建中间件
1.php artisan make:middleware Young
2.app/Http/Midlleware/Young.php
增加过滤条件
{
// 如果传入的参数 age 大于25,重定向到'/'
if ($request->age > 25) {
return redirect('/');
}
return $next($request);
}
3.注册中间件
打开 app/Http/Kernel.php
在$routeMiddleware=[]中添加
'young' => \App\Http\Middleware\Young::class,
- 添加中间件
route.php中
Route::get('young/{age}','UserController@young')->middleware('young')
然后在UserController添加young方法就ok
6.视图模板
存放在resource/views目录下
模板继承
- 在
resource/views
创建新目录layouts然后在resource/views/layouts
下创建母视图文件app.blade.php
<!DOCTYPE html>
<html>
<head>
<title>ASD</title>
</head>
<body>
@yield('content')
</body>
</html>
- 在
resource/views/pages
下创建子文件text.blade.php 继承asd母模板 而且可以添加子视图
@extends('layouts.asd')
@section('content')
<h1>ASD</h1>
<p>This is ASD player!!!</p>
<p>Author: Elyar</p>
<!-- 可以更改为你自己的信息 -->
@include('shared.author',[这里的数组里可以传入子视图需要的数据])
@endsection
- 传入数据
Route::get('greeting', function () {
return view('welcome', ['name' => 'Samantha']);
});
//在welcome文件中使用传入数据
{{$name}}
- 条件渲染
@if (count($records) === 1)
我有一条记录!
@elseif (count($records) > 1)
我有多条记录!
@else
我没有任何记录!
@endif
//循环
@for ($i = 0; $i < 10; $i++)
目前的值为 {{ $i }}
@endfor
@foreach ($users as $user)
<p>此用户为 {{ $user->id }}</p>
@endforeach
@forelse ($users as $user)
<li>{{ $user->name }}</li>
@empty
<p>没有用户</p>
@endforelse
@while (true)
<p>我永远都在跑循环。</p>
@endwhile
7.数据库
Mysql Postgres SQLite SQLServer
数据库
在主目录的.env文件 可以配置数据库
8.模型(MODEL) & Eloquent
数据交互Eloquent
8.1创建模型
php artisan make:model Article
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Article extends Model
{
//这里可以写数据库表名和字段等等
protected $table = 'users';
protected $fillable = ['name', 'password'];
}
8.2数据读取
<?php
use App\User;
//取出所有数据
//$users = App\User::all();
//获取active字段为1的数据 按照age排序
$users = App\User::where('active', 1)
->orderBy('age', 'desc')
->take(10)
->get();
foreach ($users as $user) {
echo $user->name;
}
Eloquent ORM 模型 方法还有很多 其他的就按照开发需求去官网学习即可
Tinker REPL(交互式命令行界面)
php artisan tinker
$user = new App\User;
$user -> name = 'SadCreeper';
$user -> email = '12345@qq.com';
$user -> password = 'password';
$user -> save();
案例 迷你博客
项目需求
- 需求分析:我们的迷你博客应该至少包含:新增/编辑/查看/删除文章,以及文章列表展示功能。
- 数据库分析:基于这个功能,我们只需要一张 Articles 数据表来存放文章即可。
- 页面结构分析:应该使用模板继承建立一张基础模板包含:导航栏/底部信息栏/作者信息等。
未完待更新
网友评论