后端_Laravel
Laravel
搭建开发环境
Laragon是集成开发工具,作为开箱即用的工具:
- 内置APache,Cmder,Composer,Git,HeidiSQL,Laragon,MYSQL,Nginx,Node.js,Notepad++,PHP,Redis,Yarn等.
- 官网: https://laragon.org/download/
- 注意安装时,选择Auto virtual hosts ,安装成功之后,点击Start All 之后打开 http://localhost
PHPStudy:
- 官网下载 http://phpstudy.php.cn/
- 安装配置,版本与数据库等,配置host与站点域名管理器.当打开Laravel异常时,可以选择PHP_OpenSSL.
创建项目
在Windows系统,系统要预安装PHP和Composer.方式一:使用Laravel安装器安装:$composer global require laravel/installer $laravel new projectname方式二:使用Composer自带的create-project命令来安装新应用 $composer create-project laravel/laravel blog --prefer-dist 配置数据库且初始化前端资源(npm install)
项目结构
- app:存放应用核心代码,如模型、控制器、命令、服务等.
- bootstrap: 用于存放Laravel框架的启动文件.
- config: 项目的配置文件.
- database: 存放数据库迁移的填充类文件.
- public: Web应用入口目录,用于存放入口文件index.php以及前端资源文件等.
- resources:用于存放与非PHP资源文件,如视图模板,语言文件,待编译的Vue模板,SaSS,JS源文件.
- routes: 项目的路由文件.
- storage: 存放缓存,日志,上传文件,已经编译过的视图模板等.
- tests: 存放单元测试以及功能测试代码.
- vendor: 通过Composer安装的依赖包.
- .gitignore: 版本系统文件.
- .env.example: 配置的示例模板.
- .env: 真正的配置文件.
- artisan:允许你在项目根目录下通过 php artisan 执行 Artisan 命令.
- composer.json 和 composer.lock:Composer 配置文件.
- webpack.mix.js:Laravel Mix Webpack 配置文件,用于编译和打包前端资源.
- package.json:配置前端资源依赖和脚本(类似于 composer.json 之于 PHP).
- phpunit.xml:PHPUnit 配置文件.
- server.php:用于通过 php artisan serve 启动 PHP 内置服务器进行一些简单的本地预览.
- yarn.lock:类似于 composer.lock 之于 Composer,指定 NPM 包版本.
- .editorconfig:用于在不同 IDE 或编辑器中维护代码风格的一致性配置.
调试模式
env 的APP_DEBUG=true app.php的 'debug' =>('APP_DEBUG',false)
路由
- 定义路由的入口文件: routes/web.php 用于处理终端用户通过web浏览器直接访问的请求. routes/api.php 用于处理其他接入方API请求.
- 路由动作:Route::post('/',function(){}); 捕捉任何请求Routes:: any('/',function(){});
- 复杂业务逻辑: 使用控制器的方法 Route::get('/','WelcomeController@index');
前端页面
在resource/js/components目录下新增demo.vue,然后在resource/js/app.js中全局注册这个组件.
Vue.component('welcome-component', require('./components/WelcomeComponent.vue'));const app = new Vue({el: '#app' });
在页面编写:
<div id="app"><welcome-component></welcome-component></div><script src="{{ asset('js/app.js') }}"></script> </div>
//中间件
Route:middleware('auth')->group(function () {Route::get('index',function () {return view('index');});Route::get('pagea', function () {return view('pagea');});
});//路由路径前缀
Route::prefix('api')->group(function () {Route::get('/',function () {//处理路由})->name('api.index');Route::get('users', function () { })->name('api.users');
})
控制器
在MVC模式中,控制器负责组织路由和业务逻辑,复杂的业务将业务逻辑交给Service,模型类负责底层数据存取与处理,视图层负责数据渲染与页面交互.
控制器适合负责对HTTP请求进行路由.
//控制器demo,新建Sunday控制器在APP/Http/Controllers
<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class TaskController extends Controller
{public function home(){return 'Hello, World!';}
}
在web.php进行定义 Route::get('/task', 'TaskController@home');
Blade
Blade语法,传递变量
控制器
- 创建的位置: 在app/Http/Controllers目录下创建. 命名规则,小骆驼峰法.
- 路由的调用格式: Route::get('user/tom','UserController@tom');
数据库的操作
- 数据的配置位于config/database.php, 数据库用户名与密码等敏感信息位于.env文件.
- 列表项目
处理用户请求
前端
Laravel提供Bootstrap的开箱支持,位于resource/js/bootstrap.js.然后在roueses/sass/app.css引入bootstrap 在npm install 安装前端依赖.
Laravel Mix是对Webpack进行封装后提供给Laravel项目的前端打包工具.
Laravel默认提供的CSS是SCSS文件.
(1)使用Vue.js
在resources/js/components 目录下新增一个 Vue 组件文件 Index.vue在resource/js/app.js 中注册: Vue.component('index-component', require('./components/Index.vue'));在<div id="app"><index-component></index-component></div>,使用组件.引入编译后的app.js文件,完成Vue文件的渲染与挂载.再npm run dev 重新编译前端资源.
(2)使用Laravel Mix,编译前端资源.
数据库操作
数据库的连接配置文件位于 config/database.php
文件异步上传
通过Request请求实例的file方法获取用户上传文件。
Artisan
Laravel内置的的命令行操作工具集,支持自定义命令.应用的根目录有artisan文件,作为命令行交互的入口文件.
$ php artisan list 查看所有命令
$ php artisan make:controller March
后台管理系统
创建路由-->创建控制器-->创建视图.
后端_Laravel相关推荐
- 后端怎么防止重复提交?(常用的做法)
后端怎么防止重复提交?(常用的做法) 客户端的抖动,快速操作,网络通信或者服务器响应慢,造成服务器重复处理.防止重复提交,除了从前端控制,后台也需要控制.因为前端的限制不能解决彻底.接口实现,通常要求 ...
- 大三后端暑期实习面经总结——SSM微服务框架篇
博主现在大三在读,从三月开始找暑期实习,暑假准备去tx实习啦!总结下了很多面试真题,希望能帮助正在找工作的大家!相关参考都会标注原文链接,尊重原创! 目录 1. mvc.mvp.mvvm MVC架构 ...
- 前后端分离必备工具:Swagger快速搞定(整合SpringBoot详细教程)
本文根据狂神教学视屏同步所做笔记 目录 一.Swagger简介 1. 前后端分离 2. Swagger引入 二.SpringBoot集成Swagger 1. 新建springboot项目 2. 导入S ...
- CPU架构的llvm后端
Creating an LLVM Backend for the Cpu0 Architecture Backend structure • TargetMachine structure • Add ...
- 动态表单工作量给后端
动态表单工作量给后端 让前端远离互相伤害 一个IT公司的日常就是程序员.产品经理.UI等同事们的互相残杀: 应用,不少前端就备受煎熬,除了修改需求的魔咒外,还有后端的重构和调整接口诅咒,即便需求没改, ...
- MindSpore后端运行类
MindSpore后端运行类 Q:如何在训练过程中监控loss在最低的时候并保存训练参数? A:可以自定义一个Callback.参考ModelCheckpoint的写法,此外再增加判断loss的逻辑: ...
- 用于ONNX的TensorRT后端
用于ONNX的TensorRT后端 解析ONNX模型以使用TensorRT执行. 另请参阅TensorRT文档. 有关最近更改的列表,请参见changelog. 支持的TensorRT版本 Maste ...
- 前后端分离nginx配置,同时解决跨域问题
背景 现在,web开发的前后端分离技术越来越火爆,由于最近的公司官网使用了前后端分离的方案,这里就来记录一下前后端分离的项目部署.这里我们使用的前端框架是Vue.js,后台使用Laravel7提供数据 ...
- node、Mongo项目如何前后端分离提供接口给前端
node接口编写,vue-cli代理接口方法 通常前端使用的MocK 数据的方法,去模拟假的数据,但是如果有node Mongodb 去写数据的话就不需要在去mock 数据了,具体的方法如下. 首先 ...
最新文章
- 18.自定义过滤器表头排序
- 事件相关去同步 (ERD) 和事件相关同步化 (ERS)在脑电信号研究中的应用
- Ubuntu 8.04下Netbeans的字体反锯齿解决(转)
- IDEA配置tomcat部署web项目时没有artifacts
- Linux的gcc编译器下载,gcc编译器下载
- networkx 点的属性_在NetworkX中分配节点属性时发生类型错误
- python创建一个有序链表_Python实现单向有序链表(Singly linked list)
- Android第九天
- zend新建php项目,如何使用Zend Studio创建PHP项目
- 材料学真的没前途吗?
- 应用程序池是个什么东东?
- vue-element-ui-文件上传ts版
- 【第70期】终于找到了!AI学习路线图——从零基础到就业
- 【 产品经理学习笔记 | 巨详细】1.1-1.4 初识产品经理
- 什么是企业管理咨询服务?
- vivo Y85的usb调试模式在哪里,打开vivo Y85usb调试模式的方法
- 名词诠释大全以及新站上线后,seo优化应该如何做?
- WordPress更新文章实时推送到百度
- 蓝牙开发那些事(9)——结合代码看a2dp协议
- IIC 总线协议(Verilog)