Laravel学习

简介:

Laravel是个很强大的PHP框架,它剔除了开发中Web开发中比较痛苦的过程,提供了验证(authentication),路由(routing),Session和缓存(caching)等开发过程中常用到的工具或者功能。

Laravel的配置都存放在app/config中。

Image(32)

里面所有的*.php都按照return的形式返回数据,那么就可以使用Config::get("key")来获取配置。使用Config::set("key", "value") 来赋值配置项

要想使用不同的环境配置,就需要在config下创建对应配置的文件夹。然后它会覆盖对应的配置项。

获取当前的环境是使用App::environment(),判断当前环境是什么是使用:App::environment("local")

providers是用来配置对应的服务的,比如:

Image(33)

Laravel的请求周期:

1 请求先从public/index.php中进入

2 bootstrap/start.php文件创建app并检测环境

3 内部的 /Illuminate/Foundation/start.php文件配置相关设置并加载服务器

4 加载app/start目录下的文件

5 加载app/routes.php的路由设置

6 request通过controller等转化为response

7 返回response

路由配置:

配置的格式是:

Route::get('foo/bar', funciton(){return 'Hello World';})

路由参数是可以有下面几种的:

Image(34)

可选路由参数:

Image(35)

带有默认的可选的路由参数:

Image(36)

用正则表达式限定的路由参数:

Image(37)

传递参数限定的数组:

Image(38)

定义全局模式:

Image(39)

不同的参数定位到不同的路由:

Image(40)

好,现在有个问题是某些路由必须要登录或者验证才能访问怎么办?这里就使用到了路由过滤器这个东西。

比如下面这个例子,当年龄小于200的时候就跳转到主页:

Image(41)

Request中的操作:

获取用户提交的值:Input::get('name');

获取用户提交的值并指定默认值:Input::get('name', 'Sally');

用户提交的信息是否存在:Input::has('name')

获取所有用户提交的信息:Input::all()

获取其中几项指定的信息:Input::only('username', 'password');

获取除几项之外的提交信息:Input::except('card');

访问用户提交的数组:Input::get('products.0.name');

cookie操作:

获取Cookie中的值:Cookie::get('name')

添加一个Cookie:

$response = Response::make('Hello World');

r e s p o n s e > w i t h C o o k i e ( C o o k i e :: m a k e ( n a m e , v a l u e , minutes));

如果想在Response之前设置Cookie,使用Cookie::queue()

Cookie::queue( n a m e , value, $minute);

Session操作:

存储一个变量:Session::put('key', 'value');

读取一个变量:Session::get('key');

读取一个变量或者返回默认值:Session::get('key', 'default');

检查一个变量是否存在:Sesssion::has('key');

删除一个变量:Session::forget('key');

删除所有Session变量:Session::flush();

文件上传操作:

获取用户上传文件:$file = Input::file('photo');

判断是否有上传这个文件:Input::hasFile('photo');

移动上传的文件:

Input::file('photo')->move($destinationPath);

Input::file('photo')->move( d e s t i n a t i o n P a t h , fileName);

获取上传文件大小:

Input::file('photo')->getSize();

获取上传文件类型:

Input::file('photo')->getMimeType();

获取用户请求路径:Request::path();

获取用户请求URL:Request::url();

获取Header中的信息:Request::header('Content-Type');

获取SERVER中的信息:Request::server('PATH_INFO');

重定向:

重定向: return Redirect::to('user/login');

有参数的重定向: return Redirect::to('user/login')->with('message', 'Login Failed');

重定向到路由:return Redirect::route('profile', array('user' => 1));

返回重定向到Action:return Redirect::action('UserController@profile', array('user' => 1));

视图层:

传递数据给视图:$view = View::make('greeting')->with('name', 'Steve');

将一个视图传递给另一个视图:$view = View::make('greeting')->nest('child', 'child.view');

返回json:return Response::json(array('name' => 'Steve', 'state' => 'CA'));

返回jsonp:return Response::json(array('name' => 'Steve', 'state' => 'CA'))->setCallback(Input::get('callback'));

返回下载文件:

return Response::download($pathToFile);

return Response::download( p a t h T o F i l e , status, $headers);

一个基本的控制器:

Image(42)

路由就长这样:

Image(43)

默认中,app/start/global.php文件中包含了一个处理所有异常的处理器。

Image(44)

监听fatal error,可以使用App::fatal方法。

日志操作:

Log::info

Log::warning

Log::error

目录
相关文章
|
13天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
11天前
|
存储 人工智能 搜索推荐
终身学习型智能体
当前人工智能前沿研究的一个重要方向:构建能够自主学习、调用工具、积累经验的小型智能体(Agent)。 我们可以称这种系统为“终身学习型智能体”或“自适应认知代理”。它的设计理念就是: 不靠庞大的内置知识取胜,而是依靠高效的推理能力 + 动态获取知识的能力 + 经验积累机制。
390 134
|
11天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
本文讲解 Prompt 基本概念与 10 个优化技巧,结合学术分析 AI 应用的需求分析、设计方案,介绍 Spring AI 中 ChatClient 及 Advisors 的使用。
491 132
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
|
2天前
|
人工智能 移动开发 自然语言处理
阿里云百炼产品月刊【2025年9月】
本月通义千问模型大升级,新增多模态、语音、视频生成等高性能模型,支持图文理解、端到端视频生成。官网改版上线全新体验中心,推出高代码应用与智能体多模态知识融合,RAG能力增强,助力企业高效部署AI应用。
205 0
|
12天前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
489 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
|
5天前
|
存储 JSON 安全
加密和解密函数的具体实现代码
加密和解密函数的具体实现代码
234 136
|
23天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1574 87