#PHP环境搭建与Laravel部署
xampp/php
下xampp/htdocs
下,cmd如下指令 composer create-project laravel/laravel --prefer-dist abc
创建一个叫abc的laravel项目,这样laravel项目和PHP开发环境就部署完成了,如果网速特别差就只能科学上网或者该镜像composer config -g repo.packagist composer https://packagist.phpcomposer.com
。.env
文件的数据库配置信息,记录几个常见的指令,创建Mdoel,迁移表,创建Controller#注意
比较关键的有这几点
其中路由连接控制器与视图
路由一般有GET,POST两种方式和资源路由
资源路由就是多种路由的集合体(GET/POST/PUTH/DELETE…)
除了GET和POST,其余都是表单没有的,表单只能设置action = ‘POST’或 ‘GET’
其余方式,其实是在表单中的特殊的input,形式如下
<input type="hidden" name="_method" value="DELETE">
并且laravel每次提交Form时都需要这个动态令牌
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
laravel网站资源都放到public中,通过localhost:8080/projectname/public
访问,其中路由/
拦截的就是该路径,如 /user
拦截的就是localhost:8080/projectname/public/user
#具体
##view-blade
layout.blade.php
,里面放固定的导航,边框之类的,在内容切换处用@yield('content')
填充。 //这里的asset指的就是public文件夹
<link rel="stylesheet" href="{{ URL::asset('css/xxx.css') }}">
<script type="text/javascript" src="{{ URL::asset('js/xxx.js') }}"></script>
之后就可以写内容balde了
{{--引入模板布局--}}
@extends('layout')
{{--填充模板内容--}}
@section('content')
//在这里填充内容,内容会填充到布局文件的@yield('content')处
@stop
@include(‘header’):直接把header的代码拼接到引用处,如在布局文件中
<!doctype html>
<html>
@include('header')
<body>
`@yield('content')`
</bode>
</html>
blade中使用{{ xxx }},里面可以写php代码,或者一些全局变量,如{{ url('user')}}
获取服务器路径
相当于 localhost:8080/projectname/public/user
,可以直接这么写<a href="{{ url('user')}}">
<tr align="center">
<th>序号</th>
<th>名称</th>
</tr>
@if (count($models))
@foreach($models as $model)
<tr>
{{--<input type="checkbox" name="id[]" value="{{ $user->user_id }}" />--}}
<td>{{ $model->ban_id }}</td>
<td><p>{{ $model->ban_name }}</p></td>
</tr>
@endforeach
@else
<tr>
<td colspan="2">
没有数据
</td>
</tr>
@endif
可以像上面那样填充表格
##Controller
这里的控制器是与路由对应的,如路由写Route::post('login', 'LoginController@check');
代表拦截login视图页面的POST请求,之后访问Login控制器的chec方法。
class LoginController extends Controller
{
public function check(Request $request)
{
return view('user');//返回user视图
return 'abc'//返回abc字符串
return json_encode($data);//返回json串
$models = User::all();
return view('user', compact('models'));//返回视图并携带user表的全部数据
}
}
这里的控制器主要有两种返回,一是视图,一是数据,这种路由与控制器的设置是单一的,如果想要方便可以用资源路由,会自动在控制器中生成多个方法和设置好这些方法的路由规则
[外链图片转存失败(img-uSvrYWF7-1563933394792)(http://i1.piimg.com/588926/8045b9aa249f2cae.png)]
##数据库
//增
$model = new User();
$model->user_name = $request->get('user_name');
$model->save();
//条件查询一条记录
$model = Article::where('art_id', '=', $id)->first();
//删
$model->where('art_id', '=', $id)->delete();
//改
$model->where('art_id', '=', $id)->update(['user_name' => $request->get('user_name')]);
//查全部
$models = Article::all();