当前位置: 首页 > 工具软件 > laravel-ban > 使用案例 >

hjr-PHP:xampp与laravel框架

常炯
2023-12-01

#PHP环境搭建与Laravel部署

  1. 先安装xampp,这里只需要安装其中的apache与mysql,安装后如果不能正常运行apache与mysql的端口号与httpd-ssl.conf的443(一共三个,改下面两个)端口号都要更改。
  2. 下载Composer的Windows版本,安装,其中选择php.exe在xampp/php
  3. 现在在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
  4. 修改.env文件的数据库配置信息,记录几个常见的指令,创建Mdoel,迁移表,创建Controller

#注意
比较关键的有这几点

  • 数据表生成,ORM方式
  • View.blade视图创建
  • 控制器创建
  • 路由配置

其中路由连接控制器与视图

路由一般有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

  1. 先新建一个布局文件layout.blade.php,里面放固定的导航,边框之类的,在内容切换处用@yield('content')填充。
  2. 新建一个header.blade.php文件,里面存放标签内的内容,包括js与css文件的引用。
	//这里的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();
 类似资料: