为任何Web应用程序设置适当的文件权限是Web托管的重要部分。 在本教程中,您将学习如何在Linux Web服务器上托管的Laravel应用程序上正确配置文件权限。...sudo chown -R www-data:www-data /path/to/laravel 现在为所有文件设置权限644,为所有目录设置755。 执行以下命令。...sudo find /path/to/laravel -type f -exec chmod 644 {} \; sudo find /path/to/laravel -type d -exec chmod...755 {} \; 要使Laravel正常工作,您需要为Web服务器提供存储,缓存和任何其他目录的读写权限。...bootstrap/cache 现在,您的Laravel应用程序受到适当权限的保护。
题目部分 如何在Oracle中写操作系统文件,如写日志? 答案部分 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。...image.png 其它常见问题如下表所示: 问题 答案 Oracle中哪个包可以获取环境变量的值? 可以通过DBMS_SYSTEM.GET_ENV来获取环境变量的当前生效值。...在CLIENT_INFO列中存放程序的客户端信息;MODULE列存放主程序名,如包的名称;ACTION列存放程序包中的过程名。该包不仅提供了设置这些列值的过程,还提供了返回这些列值的过程。...如何在存储过程中暂停指定时间? DBMS_LOCK包的SLEEP过程。例如:“DBMS_LOCK.SLEEP(5);”表示暂停5秒。 DBMS_OUTPUT提示缓冲区不够,怎么增加?...如何在Oracle中写操作系统文件,如写日志? 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。
最近在使用laravel-admin,记录一下用laravel-admin时遇到的问题 一、form表单中,同时验证两个或多个唯一值 $name = isset(request()->all()['name
今天开始讲如何在 Laravel 中操作数据库,Laravel 为我们提供了多种工具实现对数据库的增删改查,在我们使用 Laravel 提供的这些数据库工具之前,首先要连接到数据库。...->get(); DB::connection('mysql_old')->table('users')->insert(...); 如果你使用的 Eloquent 模型类,可以在对应模型类中设置 $...当然,对于 Web 应用而言,大多是读多写少,所以你还可以配置多个 read 主机,Laravel 底层的负载均衡机制是随机从配置的 IP 中挑一个连接: 'read' => [ 'host'...针对读写分离数据库的连接,Laravel 数据库底层会自动判断,如果是查询语句会使用读连接,如果是数据库插入、更新、删除等操作会使用写连接。...这一思想在 Laravel 配置中无处不在,很多服务都支持配置多个连接提供不同的驱动,比如 Session 支持文件、数据表等连接,缓存支持 Memcached、Redis 等连接,队列支持数据库、Beanstalkd
在建库建表和同事沟通过程中,有了如下的思考。...数据库创建时间类型的字段一般设置为 datetime 或 timestamp 类型。那么,涉及到时间字段的设置时,都会对其设置默认值和update_time字段设置实时更新,接下来梳理其使用方式。...MySQL给时间字段设置默认值 建表语句: CREATE TABLE `test` ( `id` int COMMENT 'ID', `text` varchar(255) DEFAULT '...' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; DEFAULT now()表示当数据插入数据库时,create_time和update_time默认值为当前时间 实时更新...,查看update_time的值 UPDATE test SET TEXT = "修改后测试数据" update_time字段时间已发生更新,后续如涉及到时间更新的操作,推荐此方法进行实现。
第1步 - 设置Playbook变量 在这一步中,我们将设置playbook变量来定义我们的新应用程序。...因为我们正在设置多个应用程序,所以我们还需要一个域名来响应。在这里,我们将使用laravel.example.com,但如果您有自己的域名,则可以替换它。...第4步 - 在模板中应用循环变量 在本节中,我们将介绍如何在模板中使用循环变量。 模板中的循环变量非常简单。它们的使用方式与在任务中使用的方式完全相同,就像所有其他变量一样。...我们希望仅包含laravel应用程序的内容,使其成为默认值。为此,我们可以使用基本的IF语句来检查item.name是否等于laravel,如果是,则显示default_server。...完成后,在浏览器中打开您选择的应用程序(我们在示例中使用了laravel.example2.com two.example2.com)并确认它们已正确设置。
上篇教程学院君给大家演示了如何在 Windows 中安装 WSL 版 Ubuntu 虚拟机,并且在虚拟机中安装了 PHP、Composer、Git 等 PHP 开发基础软件,此外还简单介绍了 WSL 虚拟机与...配置 & 访问 Laravel 应用 打开 blog 项目的 .env 文件,修改数据库配置: DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE...=blog DB_USERNAME=xueyuanjun DB_PASSWORD=123456 在虚拟机中进入 app 容器,在 Laravel 项目映射根目录下运行数据库迁移命令: ?...虚拟机中的 Laravel 应用了: ?...下篇教程学院君将给大家演示如何在 Windows 宿主机的 PhpStorm 中集成运行在 WSL 虚拟机中的 PHP。 (全文完)
♣ 题目部分 在Oracle中,在高并发、高负载的情况下,如何给表添加字段并设置DEFAULT值?...因为Oracle在执行上述操作过程中,不仅要更新数据字典,还会刷新全部的记录,并且会使得Undo表空间暴涨,所以,正确的做法是将更新数据字典和更新字段值分开。...LHR,那么原有记录的默认值就需要在系统空闲的时候进行批量更新、批量提交或采用系统包DBMS_PARALLEL_EXECUTE来更新,这样不至于大批量锁表,请参考本书中分批更新的部分【【DB笔试面试468...(注意2个条件,NOT NULL和默认值),Oracle不会使用这个默认值来物理更新现有存在的行,Oracle只会存储这个新列元数据(NOT NULL约束和DEFAULT默认值),从而使得对该表的添加带有默认值的非空列操作可以在瞬间完成...加了NOT NULL约束的SQL语句,可以在瞬间完成添加列的操作,而只设置了默认值的SQL语句使用了25秒的时间。
继而,讲解如何在 Laravel 项目中创建「单元测试」和「功能测试」用例。...接下来我们将创建具体的测试用例,来讲解如何在 Laravel 中使用「单元测试」和「功能测试」。 搭建测试环境 创建测试模型 在开始创建测试用例前,我们需要先构建起用于测试的项目依赖。...php Route::get('accessor/index', '[email protected]'); 设置完路由后就可以通过 http://your-laravel-site.com/accessor..., $model_post_title); } } 我们可以看到更新后的代码和 Laravel 代码编码风格完全一致。...以上就是如何在 Laravel 中使用单元测试的使用方法。 功能测试 这一节我们将学习如何创建功能测试用例来对先前创建的控制器进行「功能测试」。
通过前面几篇教程的预热,我们已经连接上数据库,创建好了数据表,填充好了数据,接下来,就是在 Laravel 应用中实现对数据库的增删改查了。...name', ['name' => $name]); 上面两条语句返回结果一样,此时返回的就是指定查询条件的结果: 如果你要设置多个查询条件,添加多个绑定参数即可。...,无需手动设置参数绑定来规避 SQL 注入攻击,因为 Laravel 底层会帮助我们自动实现参数绑定,所以推荐使用查询构建器进行数据库操作。...更新记录 更新数据库记录通过 update 方法来完成,我们可以在该方法中传入待修改字段及对应修改值数组: $id = 11; $affectedRows = DB::table('users')->where...如果是数值字段的更新的话,Laravel 还为我们提供了 increment 和 decrement 方法用于快速进行数值增减,默认步长是 1,当然你可以通过第二个参数指定步长值: DB::table(
在此示例中,将重新激活非活动用户并updated_at更新时间戳: DB :: table ( 'users' )-> upsert ( [ 'username' => 'foo' , 'active...这可以是单个记录或多个记录。 第二个参数是唯一标识记录的列。除 SQL Server 外的所有数据库都要求这些列具有PRIMARY或UNIQUE索引。 提供要更新的列作为第三个参数(可选)。...在 Laravel 5.5-5.7 中,这需要HasUpsertQueriestrait: class User extends Model { use \Staudenmeir\LaravelUpsert...upsert()还将添加updated_at到更新的列中。...LaravelUpsert\Eloquent\HasUpsertQueries; 因为我们数据库的时间是int类型,不是laravel默认的时间格式,并且我们的插入时间和更新时间也不是laravel默认的字段
在 Laravel 框架中,如果想要快速填充测试数据到数据库,可以借助框架提供的填充器功能,通过填充器,我们可以非常方便地为不同数据表快速填充测试数据。...} 如果有多个填充器类,想要一次性运行,可以将它们都放到这个方法中调用。...现在,我们先抛开测试不谈,赶紧来看下如何在 Laravel 中定义模型工厂。...,Faker 类库提供了丰富的字段规则帮助我们生成伪造字段值,这些规则可以在官方文档中查看,这里,我们使用 调用模型工厂 在调用这些模型工厂的时候,需要借助 Laravel 提供的全局辅助函数 factory...本系列教程首发在Laravel学院(laravelacademy.org),你可以点击页面左下角阅读原文链接查看最新更新的教程。
大家可以看到,在代码中我还使用了一个 toArray() 结尾,这样返回的就是一个数组。如果在没有做其它设置的情况下,这个数组里的每一项会是一个 stdClass 对象。...在 Laravel 中,默认情况下这个值设置的就是 PDO::FETCH_OBJ 。关于如何修改成 PDO::FETCH_ASSOC ,我们会在后面的文章中学习。...`sex` }); 代码中第一段的连表查询就是最普通的一个外键的查询,如果要实现多个外键连表的话,就需要使用第二种方法。...(比如记录插入前最后一条的 ID 值然后再查询一次大于这个 ID 的所有数据的 ID 值) Route::get('db/test/batch/insert', function () { $data...这个方法中的每个方法里面都是在拼接我们需要的这条 update 更新语句。
Laravel 是一个全球流行的框架,开发者和使用者都比较活跃,周边有许多库,和第三方资源均提供了支持。 今天说一下,如何在框架里同时连接多个数据库? 学习时间 为什么需要连接多个数据库呢?...所以经过拆分的数据库需要我们建立多个连接。 一般我们在 .env 文件内指定本地或者线上使用的配置项。这样做比较灵活,很容易区分出不同的设置。...首先我们在 .env 文件内添加如下配置: DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=database1 DB_USERNAME...Laravel 的灵活还不止这一点半点,如果在Model内不指定$connection,你还可以在控制器内,在命令行程序内,在队列内,在中间件内,在监听器内,都可以任意指定某个Model连接: class...写在最后 本文通过多种方法,演示了Laravel从数据库连接配置,到程序内使用的方方面面。还没有体验这个框架的同学,你真的值得一试了。 Happy coding :-)
修改语言时区 修改 config/app.php,将 local 的值 en 改成 zh-CN(laravel-admin 自带 zh-CN): 1 2 3 4 # 时区 'timezone' => '...Asia/Shanghai', # 语言 'locale' => 'zh-CN', 配置数据库 首先确保安装好了 laravel,并且数据库连接设置正确。...=cell_blog DB_USERNAME=root DB_PASSWORD=123456 下载 laravel-admin 1 2 cd cell-blog composer require encore...事件允许你在一个指定模型类每次保存或更新的时候执行代码。 retrieved 事件会在从数据库中获取已存在模型时触发。当一个新模型被首次保存的时候,creating 和 created 事件会被触发。...如果一个模型已经在数据库中存在并调用 save 方法,updating/updated 事件会被触发,无论是创建还是更新,saving/saved 事件都会被触发。
比如你在上一次变更操作中错误的设置了某个表的索引,那我理解的正确的做法不是回滚,而是创建一个新的迁移文件,并在新的迁移文件中 ALTER 之前的修改。...&选择&删除# 接下来我们来看如何在 Laravel 中实现查询/删除/更新操作,这部分的记录你可以参考下面这几个 Commit: - feat: create course and related testing...如 Java 的 Spring 会在编译时为 Sprint Container 填充不同的对象,在使用时就能向容器获取不同的值。...application services. */ public function boot(): void } 每个 Service Provider 在注册阶段都会向 container 中设置不同的值...Laravel 默认会注册 20 多个 Service Provider,每个 Service Provider 都为 Laravel 提供了一种新的能力:如 Cookie/Session/DB/Filesystem
于是就可以通过设置Sequel Pro进行连接了,如下图所示 下一步是phpstorm的设置,可以参考文章如何使用PhpStorm實現TDD、重構與偵錯然后再是让如何在PhpStorm活用PHPDoc?...,让phpstorm能自动提示laravel中的类。...blueprint) { $blueprint->build($this->connection, $this->grammar); } 此处新建完blueprint后,我们就调用了传入的闭包,在闭包中设置了表的字段...我们在多人开发的过程中,每个人开发阶段不同、DB状态也不同,整合时无法知道差异,但是如果直接修改DB的话,没有记录也没办法恢复,这时候,我们就需要引入Migration了。...操作分为up/down,每个人拿到后进行版本更新,通过执行migrate操作,就可以将DB同步到相同的状态,如果有问题,我们也可以通过rollback回到之前的状态。
· 添加或修改 DB_CONNECTION=sqlite 来指定 Laravel 使用 SQLite 作为数据库连接。...这些步骤旨在建立一个基本的 Laravel 5.5 项目,并做了一些初始化设置,包括创建模型、资源类和控制器,并配置使用 SQLite 作为数据库。 2....也就是在 app 目录下的 User.php 文件中,你会定义用户和posts之间的关联关系,比如一对多关系(一个用户有多个posts)或其他关系。· 避免批量赋值app/Post.php设置路由Route::apiResource('/users', 'UsersController'); 4....让我们将其重命名为UsersResource,并了解如何在以下步骤中重用它。 5. 在控制器内使用API资源<?
介绍 在本教程中,我们将介绍如何设置SSH密钥以支持代码部署/发布工具,配置系统防火墙,配置和配置数据库(包括密码!),以及设置任务调度程序(crons)和队列守护进程。...第1步 - 切换应用程序存储库 在此步骤中,我们将Git存储库更新为稍微自定义的示例存储库。...由于默认的Laravel安装不需要我们将在本教程中设置的高级功能,因此我们将现有存储库从标准存储库切换到添加了一些调试代码的示例存储库,只是为了显示何时工作正常。...这是我们期望在这里看到的,我们将在本教程的后面安装和设置数据库。 步骤2 - 设置SSH密钥以进行部署 在此步骤中,我们将设置可用于应用程序代码部署脚本的SSH密钥。...secret 我们可以按DB_HOST原样保留该行,但是将使用以下任务更新其他三行: - name: set DB_DATABASE lineinfile: dest=/var/www/laravel
您可以将资源表示在多个数据模型中(或根本不在数据库中表示),并且模型完全不受用户限制。最后,您将以适合您的应用程序的方式来决定如何构建资源和模型。...关于一致性的说明 使用一组约定(如REST)的最大优点是您的API将更容易消费和开发。...$table->timestamps() 将会为我们生成时间戳——在created_at和updated_at时,但是不用担心设置一个默认的,Laravel将在需要时更新这些字段。...要开始使用,我们需要调整一些设置来使用内存中的SQLite数据库。使用它将使我们的测试快速运行,但是权衡是一些迁移(migration )命令(例如约束)在该特定设置中将无法正常工作。...在我们的config/database.php文件中,我们需要database将sqlite配置中的字段设置为:memory:: ...
领取专属 10元无门槛券
手把手带您无忧上云