Laravel教程之基础入门和如何操作数据库
Laravel身为最优雅的PHP框架,很多学习PHP的小伙伴早就对Laravel垂涎欲滴。就让我们一起从零开始,教你如何安装和使用它的基础功能,以及数据库的操作。今天我们php中文网就带来学习和实践一下。
可以学习php中文网提供的视频教程:
相关链接:http://www.php.cn/course/282.html
相关链接:http://www.php.cn/course/402.html
下面就开始Laravel框架的学习和使用吧!
安装
Laravel框架使用 Composer 执行安装和依赖管理。如果还没有安装的话,现在就开始 安装 Composer 吧。
安装Composer之后,你就可以通过命令行使用如下命令安装Laravel了:
composer create-project laravel/laravel your-project-name
或者,你可以从 Github仓库 下载。接下来,在 安装Composer 之后,在项目根目录下执行 composer install 命令。该命令将会下载以及安装框架的依赖组件。
写入权限
安装完框架后,你需要熟悉一下该项目的目录结构。app 文件夹包含了一些例如 views ,controllers 和 models 目录。 程序中大部分代码将要存放这些目录下。你也可以查看一下 app/config 文件夹里一些配置项目。
路由
我们开始创建我们第一个路由。在 Laravel,简单路由的方法是闭包。打开 app/routes.php 文件加入如下代码:
Route::get('users', function() { return 'Users!'; });
现在,你在 web 浏览器输入 /users,你应该会看到 Users! 输出。真棒!已经创建了你第一个路由。
路由也可以赋予控制器类。例如:
创建视图
接下来,我们要创建视图来显示我们用户数据。视图以HTML代码存放在 app/views 文件夹。我们将存放两个视图文件到该文件夹:layout.blade.php 和 users.blade.php。首先,让我们先创建 layout.blade.php 文件:
<html> <body> <h1>Laravel Quickstart</h1> @yield('content') </body> </html>
接着, 我们创建 users.blade.php 视图:
@extends('layout') @section('content') Users! @stop
这里的语法可能让你感到陌生。因为我们使用的是 Laravel 模板系统:Blade。Blade 非常快,因为仅使用了少量的正则表达式来为你的模板编译成原始PHP代码。Blade提供强大的功能,例如模板继承,还有一些常用的PHP控制结构语法糖,例如 if 和 for。 查看 Blade 文档 了解更多。
现在我们有了我们视图,让我们返回 /users 路由。我们用视图来替代返回 Users!:
Route::get('users', function() { return View::make('users'); });
漂亮!现在你成功创建了继承至layout的视图。接下来,让我们开始数据库层。
创建迁移
要创建表来保存我们数据,我们将使用 Laravel 迁移系统。迁移描述数据库的改变,这让分享给他们团队成员非常简单。
首先,我们配置数据库连接。你可以在 app/config/database.php 文件配置所有数据库连接信息。默认,Laravel 被配置为使用 SQLite,并且一个 SQLite 数据库存放在 app/database 目录。你可以将数据库配置文件的 driver 选项修改为 mysql 并且配置 mysql 连接信息。
接下来,要创建迁移,我们将使用 Artisan CLI。在项目根目录中,在终端中执行以下命令:
php artisan migrate:make create_users_table
然后,找到生成的迁移文件 app/database/migrations 目录。该文件包含了一个包含两个方法: up 和 down 的类。在 up 方法,你要指名数据库表的修改,在 down 方法中你只需要移除它。
让我们定义如下迁移:
public function up() { Schema::create('users', function($table) { $table->increments('id'); $table->string('email')->unique(); $table->string('name'); $table->timestamps(); }); } public function down() { Schema::drop('users'); }
然后,我们在项目根目录中使用终端运行 migrate 命令来执行迁移:
php artisan migrate
如果你想回滚迁移,你可以执行 migrate:rollback 命令。现在我们已经有了数据库表,让我们让添加一些数据!
Eloquent ORM
Laravel 提供非常棒的 ORM:Eloquent。如果你使用过 Ruby on Rails 框架,你会发现 Eloquent 很相似,因为它遵循数据库交互的 ActiveRecord ORM 风格。
首先,让我们来定义个模型。ELoquent 模型可以用来查询相关数据表,以及表内的某一行。别着急,我们很快会谈及!模型通常存放在 app/models 目录。让我们在该目录定义个 User.php 模型,如:
class User extends Eloquent {}
注意我们并没有告诉 Eloquent 使用哪个表。Eloquent 有多种约定, 一个是使用模型的复数形式作为模型的数据库表。非常方便!
使用你喜欢的数据库管理工具,插入几行数据到 users 表,我们将使用 Eloquent 取得它们并传递到视图中。
现在我们修改我们 /users 路由如下:
Route::get('users', function() { $users = User::all(); return View::make('users')->with('users', $users); });
让我们来看看该路由。首先,User 模型的 all 方法将会从 users 表中取得所有记录。接下来,我们通过 with 方法将这些记录传递到视图。with 方法接受一个键和一个值,那么该值就可以在视图中使用了。
激动啊。现在我们准备将用户显示在我们视图!
显示数据
现在我们视图中已经可以访问 users 类,我们可以如下显示它们:
@extends('layout') @section('content') @foreach($users as $user) <p>{{ $user->name }}</p> @endforeach @stop
你可以发现没有找到 echo 语句。当使用 Blade 时,你可以使用两个花括号来输出数据。非常简单,你现在应该可以通过 /users 路由来查看到用户姓名作为响应输出。
下面来介绍一下如何操作数据库:
一、读/写连接
有时您可能希望使用一个SELECT语句的数据库连接,,另一个用于插入、更新和删除语句。Laravel使这微风,将始终使用正确的连接是否使用原始查询,查询生成器或雄辩的ORM。
二、运行查询
一旦你已经配置了数据库连接,你可以使用DB运行查询类。
运行一个Select查询
$results = DB::select('select * from users where id = ?', array(1));
结果的选择方法总是返回一个数组。
运行一个Insert语句
DB::insert('insert into users (id, name) values (?, ?)', array(1, 'Dayle'));
运行一个更新语句
DB::update('update users set votes = 100 where name = ?', array('John'));
运行一个Delete语句
DB::delete('delete from users');
注意:update和delete语句返回的行数的影响操作。
运行一个通用声明
DB::statement('drop table users');
查询事件监听
你可以查询事件监听使用DB::听方法:
DB::listen(function($sql, $bindings, $time){ //});
三、数据库事务
运行在一个数据库事务的一组操作,您可以使用事务方法:
DB::transaction(function(){ DB::table('users')->update(array('votes' => 1)); DB::table('posts')->delete();});
注意:在事务抛出的任何异常关闭将导致自动事务将回滚
有时你可能需要开始一个事务:
DB::beginTransaction();
你可以通过回滚事务回滚方法:
DB::rollback();
最后,您可以通过提交方法:提交一个事务
DB::commit();
四、访问连接
当使用多个连接,你可以访问它们通过DB::连接方法:
$users = DB::connection('foo')->select(...);
你也可以访问原始的、潜在的PDO实例:
$pdo = DB::connection()->getPdo();
有时你可能需要重新连接到一个给定的数据库:
DB::reconnect('foo');
如果你需要断开从给定的数据库将超过底层PDO实例'smax_connections限制,使用断开连接方法:
DB::disconnect('foo');
五、查询日志
默认情况下,Laravel日志保存在内存的所有查询运行当前的请求。然而,在某些情况下,例如当插入的行数,这可能会导致应用程序使用多余的内存。禁用日志,你可以使用disableQueryLog方法:
DB::connection()->disableQueryLog();
o得到一组执行的查询,您可以使用getQueryLog方法:
$queries = DB::getQueryLog();
相关推荐:

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Kimi:一句话,十几秒钟,一份PPT就新鲜出炉了。PPT这玩意儿,可太招人烦了!开个碰头会,要有PPT;写个周报,要做PPT;拉个投资,要展示PPT;就连控诉出轨,都得发个PPT。大学更像是学了个PPT专业,上课看PPT,下课做PPT。或许,37年前丹尼斯・奥斯汀发明PPT时也没想到,有一天PPT竟如此泛滥成灾。吗喽们做PPT的苦逼经历,说起来都是泪。「一份二十多页的PPT花了三个月,改了几十遍,看到PPT都想吐」;「最巅峰的时候,一天做了五个PPT,连呼吸都是PPT」;「临时开个会,都要做个

北京时间6月20日凌晨,在西雅图举办的国际计算机视觉顶会CVPR2024正式公布了最佳论文等奖项。今年共有10篇论文获奖,其中2篇最佳论文,2篇最佳学生论文,另外还有2篇最佳论文提名和4篇最佳学生论文提名。计算机视觉(CV)领域的顶级会议是CVPR,每年都会吸引大量研究机构和高校参会。据统计,今年共提交了11532份论文,2719篇被接收,录用率为23.6%。根据佐治亚理工学院对CVPR2024的数据统计分析,从研究主题来看,论文数量最多的是图像和视频合成与生成(Imageandvideosyn

我们知道LLM是在大规模计算机集群上使用海量数据训练得到的,本站曾介绍过不少用于辅助和改进LLM训练流程的方法和技术。而今天,我们要分享的是一篇深入技术底层的文章,介绍如何将一堆连操作系统也没有的「裸机」变成用于训练LLM的计算机集群。这篇文章来自于AI初创公司Imbue,该公司致力于通过理解机器的思维方式来实现通用智能。当然,将一堆连操作系统也没有的「裸机」变成用于训练LLM的计算机集群并不是一个轻松的过程,充满了探索和试错,但Imbue最终成功训练了一个700亿参数的LLM,并在此过程中积累

机器之能报道编辑:杨文以大模型、AIGC为代表的人工智能浪潮已经在悄然改变着我们生活及工作方式,但绝大部分人依然不知道该如何使用。因此,我们推出了「AI在用」专栏,通过直观、有趣且简洁的人工智能使用案例,来具体介绍AI使用方法,并激发大家思考。我们也欢迎读者投稿亲自实践的创新型用例。视频链接:https://mp.weixin.qq.com/s/2hX_i7li3RqdE4u016yGhQ最近,独居女孩的生活Vlog在小红书上走红。一个插画风格的动画,再配上几句治愈系文案,短短几天就能轻松狂揽上

检索增强式生成(RAG)是一种使用检索提升语言模型的技术。具体来说,就是在语言模型生成答案之前,先从广泛的文档数据库中检索相关信息,然后利用这些信息来引导生成过程。这种技术能极大提升内容的准确性和相关性,并能有效缓解幻觉问题,提高知识更新的速度,并增强内容生成的可追溯性。RAG无疑是最激动人心的人工智能研究领域之一。有关RAG的更多详情请参阅本站专栏文章《专补大模型短板的RAG有哪些新进展?这篇综述讲明白了》。但RAG也并非完美,用户在使用时也常会遭遇一些「痛点」。近日,英伟达生成式AI高级解决

Laravel9和CodeIgniter4的最新版本提供了更新的特性和改进。Laravel9采用MVC架构,提供数据库迁移、身份验证和模板引擎等功能。CodeIgniter4采用HMVC架构,提供路由、ORM和缓存。在性能方面,Laravel9的基于服务提供者设计模式和CodeIgniter4的轻量级框架使其具有出色的性能。在实际应用中,Laravel9适用于需要灵活性和强大功能的复杂项目,而CodeIgniter4适用于快速开发和小型应用程序。

Laravel - Artisan 命令 - Laravel 5.7 提供了处理和测试新命令的新方法。它包括测试 artisan 命令的新功能,下面提到了演示?

当Sora「千呼万唤」不出来时,OpenAI的对手们却纷纷祭出大杀器来炸街。Sora再不开放使用,真的要被偷家了!今日,旧金山初创公司LumaAI打出一手王牌,推出新一代AI视频生成模型DreamMachine。人人免费可用。据介绍,该模型能够根据简单的文本描述生成高质量、逼真视频,效果堪比Sora。消息一出,大量用户挤进官网尝鲜。尽管官方声称该模型能在短短两分钟内生成120帧视频,但由于访问量激增,许多用户在官网中苦苦等待数小时。Luma的产品增长主管BarkleyDai不得不在Discord