laravel8框架-开发实战项目总结(一)

2023-11-19

一、laravel框架的目录结构

app:应用目录,保存项目中的控制器、模型等

bootstrap:保存框架启动的相关文件

config:配置文件目录

database:数据库迁移文件和数据填充文件

public:应用入口文件index.php和前端资源文件(如CSS、JavaScript等)

resources:存放视图文件、语言包和未编译的前端资源文件

routes:存放应用中定义的所以路由

storage:存放编译后的模板,Session文件、缓存文件、日志文件等

tests:自动化测试文件

vendor:存放通过Composer加载的依赖
 

 二、路由

Route::get('/test','TestController@index');
Route::get('/test', [TestController::class, 'index']);

Route::get('test', function () {
    return view('hello get');
});

Route::post('test', function () {
    return view('hello post');
});

//match 表示匹配固定的请求方法路由
Route::match(['post','get'],'match', function () {
    return view('hello match');
});

//any 表示匹配任意的请求方法路由
Route::any(['any'],function () {
    return view('hello any');
});

//必选参数
Route::get('bixuan(id)', function ($id) {
    echo '必选'.$id;
});

//可选参数
Route::get('kexuan(id?)', function ($id='默认值') {
    echo '可选'.$id;
});

//数组传值:
Route::get('/test/{title?}', function ($title="我是标题") {//{title?}参数名,?可选
    return view('login',['title'=>$title]);//view(模板名,数组),
});

//with传值:
Route::get('/with/{title?}', function ($title="我是标题") {//{title?}参数名,?可选	
    return view('login')->with('title',$title);//模板名
});

//compact传值(推荐):
Route::get('/compact/{title?}', function ($title="我是标题",$name="我是name"){
	$age = 19;
    return view('login',compact('title','name','age'));
});

//判断视图是否存在:
Route::get('/exists', function () {
    if(View::exists('login')){
		echo "模板存在";
	}else{
		echo "模板不存在";
	}
});

//例如,如果您想要为应用程序中的所有路由添加一个前缀 api,可以这样使用 Route::prefix 方法:
Route::prefix('api')->group(function () {
	Route::get('', 'CategoryController@index');
    Route::get('add', 'CategoryController@add');
});

//中间件	->middleware('')方法允许您指定一个或多个中间件名称
Route::get('middleware/{height}',function(){
	reurn '您的身高复合要求';
})->middleware('height');

2、错误信息

        2.1  报错 404 Not Found

原因及解决方法点击查看官方文档

>原因: “域名/user” 这种属于美化后的URL,正常应该是在前面要加上入口文件index.php,即通过“域名/index.php/user”访问。

Apache
框架中自带的 public/.htaccess 文件支持隐藏 URL 中的 index.php,如过你的 Laravel 应用使用 Apache 作为服务器,需要先确保 Apache 启用了mod_rewrite 模块以支持 .htaccess 解析。
如果 Laravel 自带的 .htaccess 文件不起作用,试试将其中内容做如下替换:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

Nginx
如果你使用的是 Nginx,使用如下站点配置指令就可以支持 URL 美化:

 打开laravel8手册,复制已下代码到刚才打开的配置好的域名配置文件中

安装 | 入门指南 |《Laravel 8 中文文档 8.x》| Laravel China 社区 (learnku.com)

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

 配置好后重启Apache/Nginx验证。

        2.2 错误信息:目标类[TestController]不存在

TestController在\App\Http\Controllers目录下,如下所示:

Route::get('/login', '\App\Http\Controllers\LoginController@login');

3、命令

//查看所有路由

php artisan route:list

三、控制器

3.1,控制器的创建

命令:php artisan make:controller 控制器名称
注意:命名规则适用大驼峰法 例如:TestController

 

//查询:
$list = DB::table('users')->get(); // 获取所有数据
$list = DB::table('users')->where('id', 1)->first(); // 根据ID查找用户
$list = DB::table('users')->where('name', 'John')->first(); // 根据条件查找用户
$list = DB::table('users')->orderBy('name')->get(); // 按条件排序后获取所有用户
$list = DB::table('users')->select('id', 'name', 'email')->get();//查询指定字段select
$list = DB::table('users')->pluck('name', 'id');//指定查询的单个字段并返回一个新的集合(不常用)
//关联查询-join()
	DB::table('user as t1')
	->select('t1*','t1.name')
	->leftjoin('author','t1.id','=','author.id')
	->get();

//添加:
$content=input::get('content');
$title=input::get('title');
DB::table('cmss')->insert(array('title'=>$title,'content'=>$content));

//修改:
$data=DB::table('cmss')->where('id',$arr['id'])->update($arr);

//删除:
$arr=DB::table('cmss')->where('id','=',$id)->delete();



//表单验证 - validate:
public function test2(Request $request)
{
	$request->validate($request,[
	//	required 不能为空
	//	min 最小值
	//	max 最大值
	//	integer 整型
	//	email
	//
		'name'=>'required|min:2|max:30|',
	])
}

四、模型

4.1,模型的创建

命令:php artisan make:model 模型名(表名,首字母大写)

五、视图

1,两种模板文件格式-获取数据(两种文件同时存在时,blade模板引擎文件优先使用):
//login 模板名
login.php	格式:<?php  echo $title;	?>
login.blade.php		格式:{{$title}}


//模板页-显示报错信息-表单验证
@if($reeors->any())
	<div>
		报错信息
		@foreach($errors->all() as $error)
		<li>{{$error}}</li>
		@endforeach
	</div>
@endif

	<form action="">
		@csrf//防止CSRF攻击
		
		//验证信息显示
		姓名:<input type="" name="name" class="$error('name')"/><br/>
		@error('name')
			<div>{{$message}}</div>
		@enderror
	</form>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

laravel8框架-开发实战项目总结(一) 的相关文章

  • PHP 文件上传帮助

    div align center div 这是我的代码
  • 使用 md5 加密的 PHP 和 Mysql 查询出现问题

    我使用普通的 php mysql 插入查询并使用 md5 加密密码 这是插入查询 sql mysql query INSERT INTO user username password role approved values usernam
  • 私人聊天系统MYSQL查询显示发送者/接收者的最后一条消息

    在这里我延伸一下我之前的问题 私人聊天系统MYSQL查询ORDERBY和GROUPBY https stackoverflow com questions 10929366 private chat system mysql query o
  • 在 PHP 中将 CSV 写入不带括号的文件

    是否有本机函数或实体类 库用于将数组写入 CSV 文件中的一行而无需封装 fputcsv将默认为 如果没有为封装参数传入任何内容 谷歌让我失望了 返回一大堆有关的页面的结果 fputcsv PEAR 的库做的事情或多或少与fputcsv 工
  • cURL 错误 77:设置证书验证位置时出错:CAfile

    我正在使用 Firebase php SDKlink https firebase php readthedocs io en latest index html并在 Windows 10 上的 XAMPP 服务器上使用 laravel 最
  • 如何在 Zend Framework 中存储 cron 作业的脚本?

    因为 ZF 的所有 URL 都依赖于 mod 重写 所以我并不清楚应该在哪里存储用于 cron 作业的本地脚本 有人有什么建议 或者有 正式接受 的方式吗 我用模块化目录结构 http framework zend com manual e
  • 如何将 PHPMailer 与 Codeigniter 3 集成

    嗨 我正在尝试使用PHPMailer 库 https github com PHPMailer PHPMailer来自我的 Codeigniter 应用程序中的 GitHub 我下载了代码并解压到我的application library文
  • Magento补丁安装失败

    从以下位置下载并运行 Magento PHP 5 4 支持补丁 Magento CE v1 7 0 0 1 7 0 2 时http www magentocommerce com download http www magentocomme
  • strlen()==0 和empty()之间有区别吗?

    我正在查看其他人编写的一些表单验证代码 我看到了这个 strlen 0 当测试表单变量是否为空时 我使用empty 功能 一种方法比另一种方法更好吗 它们在功能上等效吗 strlen是获取字符串中的字符数 同时empty用于测试变量是否为空
  • 在 Woocommerce 购物车中设置最小小计金额

    我正在尝试将最低订单金额设置为 25 美元 到目前为止 我找到了这段代码 如果未达到最低限度 它似乎可以阻止结账 但它使用的小计包含税费 我需要在总计中排除税费 add action woocommerce checkout process
  • 如何用javascript正确读取php cookies

    考虑这个 php 和 javascript 代码 然后我在控制台中看到的是 utma 111872281 291759993 1444771465 1445374822 1445436904 4 utmz 111872281 1444771
  • 通过JS Laravel访问存储目录

    有没有办法访问storage目录 该目录已经链接到publicJS 中的目录 我正在尝试制作一个上传图片的表单 验证脚本 if request gt hasFile photos marker gt photos request gt ph
  • 如何在没有引用的情况下复制对象?

    PHP5 OOP 有据可查对象通过引用传递 http php net manual en language oop5 references php默认情况下 如果这是默认的 在我看来 有一种非默认的方式可以在没有参考的情况下进行复制 如何
  • laravel 中哪里可以设置标题

    我想将标题设置为array Cache Control gt no cache no store max age 0 must revalidate Pragma gt no cache Expires gt Fri 01 Jan 1990
  • 将数组拆分为特定数量的块

    我知道array chunk 允许将数组拆分为多个块 但块的数量根据元素的数量而变化 我需要的是始终将数组拆分为特定数量的数组 例如 4 个数组 以下代码将数组分为 3 个块 两个块各有 2 个元素 1 个块有 1 个元素 我想要的是将数组
  • 如何在php中使用preg添加html属性

    我正在寻找在 php 中编写一个脚本来扫描 html 文档并根据它找到的内容向元素添加新标记 更具体地说 我是扫描文档并为每个元素搜索CSS标记 float right left 如果找到它 它会添加align right left 基于它
  • Zend Framework Zend_Form 装饰器: 位于按钮元素内部?

    我有一个像这样创建的按钮元素 submit new Zend Form Element Button submit submit gt setLabel My Button submit gt setDecorators array Vie
  • 检查文件权限

    我怎样才能检查file permissions 无需通过运行操作系统特定命令passthru or exec Use 文件权限 http php net fileperms功能 clearstatcache echo substr spri
  • 如何使用 Google 帐户对我们网站中的用户进行身份验证

    如何在我们的网站中使用 Google 帐户对用户进行身份验证 我希望用户重定向到谷歌登录页面 然后将他重定向到我的网站 我想要这个 PHP 实现 你要OAuth http code google com apis accounts docs
  • 文件修改时间检查的成本

    对于Linux下包含少量字节的文件 我只需要处理自上次处理以来发生更改的时间 我通过调用 PHP 检查文件是否被更改clearstatcache filemtime 定期 由于整个文件总是很小 因此删除对 filemtime 的调用并通过将

随机推荐

  • SpringBoot读取Resource下文件的四种方式

    SpringBoot读取Resource下文件的四种方式 1 ClassPathResource classPathResource new ClassPathResource static image a jpg InputStream
  • connect函数的用法

    作者 曾宏安 华清远见嵌入式学院讲师 在网络编程中 connect函数经常用来在套接字上初始化连接 无论是流式套接字还是数据报套接字都可以使用connect函数 但含义却不一样 下面我们分别来讨论一下 一 流式套接字 流式套接字通常使用的是
  • CSS字体样式属性(字体设置)

    font size 字号大小 font size属性用来设置字符 该属性的值有两种单位 1 相对长度单位 像素单位 px 2 绝对长度单位 使用非常少 font family 字体 font family属性用于设置字体 网页常用的字体 宋
  • 学习太极创客 — ESP8226 (十三)OTA

    视频链接 https www bilibili com video BV1L7411c7jw p 23 vd source b91967c499b23106586d7aa35af46413 资料链接 http www taichi make
  • bazel构建使用clang工具链

    最近使用clang工具构建bazel项目 官方文档给的step较为繁琐 这里暂时记录一下 以便后期可以直接去用 这里具体的规则不进行详细解释 具体看官方文档有关描述 查看预定义变量列表 使用如下命令 bazel info show make
  • 【华为OD统一考试A卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • module ‘tensorflow‘ has no attribute ‘global_variables_initializer‘(问题已解决)

    最近在学深度学习 一开始就遇到了个很狗血的问题 总会报出例如下面的这种错误 y hat tf constant 36 name y hat y tf constant 39 name y loss tf Variable y y hat 2
  • xpath通过text()方式获取div节点下的文本存在bug

    环境 scrapy1 8 python3 7 3 div块如下 div class li b l span class money 12k 20k span 经验3 5年 大专 div 用形如 x response xpath div cl
  • sparkstreamming 消费kafka(2)

    spark streaming提供了两种获取方式 一种是同storm一样 实时读取缓存到内存中 另一种是定时批量读取 这两种方式分别是 Receiver base Direct 一 Receiver base Spark官方最先提供了基于R
  • 使用Jenkins+Gitlab集成Flutter自动化打包(Android),并发布到蒲公英

    本文记录一下使用Jenkins Gitlab集成Flutter自动化打包的过程 在集成时 Jenkins和Gitlab是已经搭建好的 并且Gitlab上已经上传了Flutter项目 Jenkins自动构建打包 安装Gitlab插件 因为Je
  • Js 关于收藏本页和设置首页

  • 交换机二三层转发原理简单总结

    首先二层转发是基于MAC地址转发 三层转发基于IP地址转发 但是这并不意味着仅仅依靠IP地址就能转发 三层转发是建立在二层的基础上的 而仅仅依靠MAC地址是能够转发的 另外 由于二三层转发基于MAC地址 IP地址 FDB表 MAC地址学习
  • 2019年感:忆往昔考博岁月,看今朝花样年华

    人生的际遇谁又能说清楚 就像师范类毕业的女神梦想着当一名老师 结果却阴差阳错穿上了警服 而本应该奔波北上广深的程序员 却成为了一名大学老师 两条平行线的男女 却结为了连理 再如 一心准备中科院却因英语差一分惜败 几乎裸考的学校却可能结出果实
  • 多模态预训练模型CLIP:中文版本开放使用

    公众号原文 关注公众号 获取一手论文咨询 多模态预训练模型CLIP 中文版本开放使用 中文项目地址 https github com real brilliant chinese clip in tensorflow 01 背景 CLIP是
  • 【车联网原型系统|四】adhoc组网+frp内网穿透

    物联网原型系统导航 车联网原型系统 一 项目介绍 需求分析 概要设计 https blog csdn net weixin 46291251 article details 125807297 车联网原型系统 二 数据库 应用层协议设计 h
  • 【Python三大结构练习4】

    目录 1 哥德巴赫猜想 2 判断是否回文 3 Add ings 4 身份证号掩盖出生日期 5 敏感词过滤 1 哥德巴赫猜想 题目描述 一个大正偶数总可以分解为两个质数之和 试编写程序验证哥德巴赫猜想 输入一个正偶数 输出该偶数的质数和分解
  • 使用 Spring 2.5 注释驱动的 IoC 功能

    基于注释 Annotation 的配置有越来越流行的趋势 Spring 2 5 顺应这种趋势 提供了完全基于注释配置 Bean 装配 Bean 的功能 您可以使用基于注释的 Spring IoC 替换原来基于 XML 的配置 本文通过实例详
  • Selenium脚本转化Java代码

    Selenium录制的脚本可以转换Java JUnit单元测试 可以使用Java项目管理工具Maven统一运行 从Selenium脚本中导出Java代码 按照如下步骤 使用Java运行Selenium脚本 使用Chome导出Java脚本必须
  • iframe与vue

    iframe与vue 在vue中使用 创建一个vue页面 iframe的src属性绑定需要的页面 放在template中 在iframe种调用vue的方法 a页面url为a demo com a页面中iframe引用的b页面url为b de
  • laravel8框架-开发实战项目总结(一)

    一 laravel框架的目录结构 app 应用目录 保存项目中的控制器 模型等 bootstrap 保存框架启动的相关文件 config 配置文件目录 database 数据库迁移文件和数据填充文件 public 应用入口文件index p