首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel - firstOrCreate()将参数1检测为非数组,但它是

一个字符串。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

3分钟短文:Laravel模型创建数据条目的2个语法糖

= 'The Mocha Factory'; $event->save(); 大家注意,在对象创建之后,我们直接操作对象属性,其赋值,最后调用save方法,就完成了数据新建的所有动作。...模型有一个语法糖方法 firstOrCreate,举一个例子: $event = Event::firstOrCreate(['name' => 'Coffee and Laravel']); 上面的代码相当于下面的操作...firstOrCreate 方法还接收第二个参数,用于指定第一个参数查询语句不成立时,创建数据条目时使用。...代码如下: $event = Event::firstOrCreate(['name' => 'Coffee and Laravel'], ['venue' => 'Starclucks', 'city...' => 'Dublin']); 如果 name 字段已存在,就返回第一条数据;如果不存在,就是用第二个数组写入。

1.9K00

Laravel5.7 Eloquent ORM快速入门详解

此外,Eloquent 默认主键字段是自增的整型数据,这意味着主键将会被自动转化为 int 类型,如果你想要使用自增或数字类型主键,必须在对应模型中设置 incrementing 属性 false...$flight = App\Flight::where('active', 1)- first(); 还可以通过传递主键数组来调用 find 方法,这将会返回匹配记录集合: $flights = App...- where('destination', 'San Diego') - update(['delayed' = 1]); update 方法要求以数组形式传递键值对参数,代表着数据表中应该被更新的列...$guarded 属性设置数组: /** * The attributes that aren't mass assignable...和 firstOrCreate 方法一样,updateOrCreate 方法会持久化模型,所以无需调用 save(): // 如果有从奥克兰到圣地亚哥的航班则将价格设置 $99 // 如果没有匹配的模型则创建之

15K41

Laravel多对多关系详解【文章 - 标签】

这是我是文章表【articles】、标签表【tags】以及关系表【article_tag】 其中关系的命名是[article_tag]而不是tag_article 因为laravel默认是以字母升序排列...foreign()外键 references():参照字段 on():参照表 onDelete():删除时的执行动作 这里是跟着删除,比如删除了某篇文章,我们article_tag...我们使用 $this->belongsToMany() 来表明Eloquent的关系,这里需要注意的是如果你的外键并不是 article_id 和 tag_id ,你需要在第三个参数进行设置,写成类似下面这样...(['name'=>'tag name']); 嗯,不行,每次创建文章,哪怕标签都一样的,还是会在tag表新建一个标签。...而正在的写法是: $article->tags()->attach($tags); 传入的$tags 不是名称,而是tag表的id,可以是数组 ????而我不能在新建文章时直接输入标签名???? ?

1.8K00

跟我一起学Laravel-EloquentORM基础部分

= 'my_flights'; } Eloquent 假设每个表都有一个名为id的主键,可以通过$primaryKey成员变量覆盖该字段名称,另外,Eloquent假设主键字段是自增的整数,如果你想用自增的主键或者数字的主键的话...$flight = App\Flight::where('active', 1)->first(); 使用find方法也可以返回多个结果,以Collection对象的形式返回,参数多个主键 $flights...where('legs', '>', 100)->firstOrFail(); 如果没有捕获这个异常的话,laravel会自动返回给用户一个404的响应结果,因此如果希望找不到的时候返回404,是可以直接使用该方法返回的...参数 类型 说明 perPage int 每页显示数量 columns array 查询的列名 pageName string 页码参数名称 page int 当前页码 返回值 LengthAwarePaginator...firstOrCreate方法用来使用给定的列值对查询记录,如果查不到则插入新的。

81920

laravel框架模型和数据库基础操作实例详解

本文实例讲述了laravel框架模型和数据库基础操作。...使用了pdo参数绑定,使应用程序免于sql注入,因此传入的参数不需要额外转义特殊字符。基本上可以满足所有的数据库操作,而且在所有支持的数据库系统上都可以执行。...新增数据、自定义时间戳、批量赋值 (1)使用save方法新增 laravel会默认维护created_at,updated_at 两个字段,这两个字段都是存储时间戳,整型11位的,因此使用时需要在数据库添加这两个字段...如果不需要这个功能,只需要在模型里加一个属性:public $timestamps=false; 以及一个方法,可以当前时间戳存到数据库 protected function getDateFormat...(3)firstOrCreate()以属性查找记录,若没有则新增 $student=Student::firstOrCreate(['vip_name'= 'mmm']); echo $student;

2.8K20

Laravel基础

$id; }); name赋默认值kitty,是name变为可选项(加?) Route::get('user/{name?}'...$name; }); 参数使用正则表达式来限制 Route::get('user/{name?}'..., ['abcd']); laraevl内置函数dd,可人性化的打印数组:dd($result); 3.2 数据库操作 - 查询构造器 3.2.1 查询构造器简介 Laravel 查询构造器(query...Builder)提供方便,流畅的接口,用来建立及执行数据库查找语法 使用PDO参数绑定,以保护应用程序免于SQL注入,因此传入的参数不需额外转义特殊字符 基本可以满足所有的数据库操作,而且在所有支持的数据库系统上都可以执行...>decrement('age', 3, ['name' => '张佳']); 3.2.2.3 查询构造器 - 删除数据 关键词: delete 删除数据 truncate 清空表,并将ID自增重置0

7.7K30

通过 Laravel Eloquent 模型实现简单增删改查操作

默认时间的存储格式是 Y-m-d H:i:s,你还可以通过 $dateFormat 属性来自定义时间戳的格式,该属性值通过 PHP 的 date() 函数进行解析,所以原则上支持 date 函数支持的所有语法格式,比如时间设置...只不过 DB::table 换成对应的模型类而已。...两者的区别是 firstOrCreate 方法在设置完模型属性后会将该模型记录保存到数据库中,而 firstOrNew 不会: $post_1 = Post::firstOrCreate([ '...同样,Eloquent 也我们提供了快捷的更新方法 updateOrCreate,该方法首先会根据传入参数对模型对应记录进行更新,如果发现对应记录不存在,则会将更新数据作为初始数据插入数据库,并保存(...本系列教程首发在Laravel学院(laravelacademy.org)

7.9K20

Laravel框架关键技术解析

,默认内容不是必须的 @include(‘子视图名称’):用于在视图文件中加载子视图文件,使得视图文件结构清晰 六、Laravel框架中的设计模式 A.服务容器 1.服务理解系统运行中需要的东西,如对象...,同时也引入 了另一个严重的问题——耦合 3.不应该在类的内部固化实例的初始化行为,而是转由外部负责,在系统运行期间,这种依赖关系通过动态注入的方式实现,这就是IOC模式的设计思想 4.IOC(Inversion...应用程序的引导包括环境检测、配置加载、日记配置、异常处理、外观注册、服务提供者注册和启动服务七个步骤 2.在配置加载的过程中设置的参数都可以在.env文件中进行设置,而.env中对环境的配置将会覆盖配置加载项...$app[] 通过全局函数app()解析,如果参数NULL,则返回服务容器的实例 通过Facades中的App外观解析 9.Laravel框架还实现了一种依赖注入的方式进行服务解析,服务名称必须服务生成的实例对象的类名称或接口名称...十二、会话 A.Laravel框架中的session机制 1.当客户端访问服务器时,服务器开启session,检测请求的Cookie中是否携带sessionID,如果携带则使用该sessionID,

11.9K20

CVE-2021-39165: 从一个Laravel SQL注入漏洞开始的Bug Bounty之旅

测试的过程就不说了,经过测试,我获取了下面的结果: 当第一个参数key可控时,传入任意字符串都会报错,具体的错误“unknown column”,类似反引号、双引号这样的定界符将会被转义,所以无法逃逸出...field字段进行注入 当第二个参数符号可控时,输入符号字符不会有任何报错,也不存在注入 当整体可控时,相当于可以传入多个key、符号和value,经过前两者的测试,key和符号位都是不能注入的,value...我debug模式打开,并注释了抑制报错的逻辑,即可在页面上看到SQL注入的报错: 1[3]参数可以注入任何语句,所以这里存在一个SQL注入漏洞。...SQLMap默认情况下整个参数替换成SQL注入的Payload,而这个注入点需要前缀和后缀,需要对参数进行修改。 我先使用一个能够爆出数据的URL,比如/api/v1/components?...name=1&1[0]=&1[1]=a&1[2]=&1[3]=or+%27a%27=%3F%20and%201=1)+--+,在这个括号后面增加个星号,然后作为-u目标进行检测即可: python sqlmap.py

66320

Laravel Sms实现laravel短信验证码的发送的实现

本文介绍了用Laravel Sms实现laravel短信验证码的发送的实现,分享给大家,具体如下: 阿里云短信服务 使用Laravel Sms这个扩展包实现短信验证码的发送,这里以阿里云的短信服务例...接下来,配置参数: 打开phpsms.php, ? ? 找到agents数组中你需要的代理器,填好其相应的配置信息,我这里使用的是阿里云的短信服务(不是阿里大鱼)。 ?...打开laravel-sms.php,找到templates数组, ? 这里对应的是你申请的短信模板的模板CODE。 到这为止,基本的配置就已完成,不再过多叙述。...另附一个封装好的js文件,https://github.com/toplan/laravel-sms/blob/master/js/laravel-sms.js laravel-sms.js放入项目中...() { return '18*******37'; }, //手机号的检测规则 // mobile_rule : 'mobile_required

3.6K41

2021-07-08总结

注意: PHP 会将数值的 string 当成 0,如果这个正是最大的数值则仍然会返回一个字符串。...如果多个参数都求值 0 且是最大值,max() 会返回其中数值的 0,如果参数中没有数值的 0,则返回按字母表顺序最大的字符串。 echo max(1, 3, 5, 6, 7)."...1, 1, 1))); // array(1, 1, 1, 1) echo ''; // 对多个数组,max 从左向右比较。...; // 如果同时给出数组数组作为参数,则总是数组视为 // 最大值返回 $val = max('string', array(2, 5, 7), 42); // array(2, 5, 7)...202 (已接受) 服务器已接受请求,尚未处理。 203 (授权信息) 服务器已成功处理了请求,返回的信息可能来自另一来源。 204 (无内容) 服务器成功处理了请求,没有返回任何内容。

1.9K20

Laravel 5.0 之事件及处理程序

DoThis.HandleACommandThatIsTellingMeToDoThis, 它是命令式的,告诉系统要做什么事。...它是知会式的,只是知会事件发生比提供相关信息。如果你熟悉“发布/订阅”概念的话,这就是“事件”机制要处理的。...,通过这样的方式这个类提供额外的数据。...那当然不是 Laravel 的思路, Laravel 提供了事件总线让以上这一系列的工作更简单,更具有一致性和全局性: \Event::fire(new ThingWasDone($param1, $...只要你理解了 Laravel 5 的命令和处理程序,掌握事件处理机制就是一件非常容易的事了。触发系统向整个应用发出通知说某个事件发生了,而不是要求系统执行某些操作。本质上它们都是封装的信息和目的。

1.1K50

Laravel源码笔记(二)路由

因为对于开发者来说,route文件的配置其实是很少改动的,因此laravel在这里使用了静态文件缓存解析好的路由规则缓存起来,缓存路径/bootstrap/cache/routes.php。...,获取的若干token变量拼接pattern最终的路由正则表达式$regex。        ...P[^/]++) 若当前路由参数是可选参数的时候,需要在正则表达式中不断叠加捕获分组(?,再最后设置{tokens数组长度-第一个可选参数出现位置}个可选分组)?)?...,例如 (?...匹配得到的matches[1]子命名数组与路由本身的参数数组parameterNames进行array_intersect_key()与array_filter(),得到形式 array(’路由参数名...这里注意去除匹配的可选参数名中的‘?’; Routeurl绑定或获得的路由参数组存入自己的parameters中。

7.4K40

如何使用 Laravel Collections 类编写神级代码

Laravel 提供了一些超赞的组件,在我看来,它是目前所有 Web 框架中提供组件支持最好的一个。...最后,我们还希望返回的结果 这个需求看起来不难实现,现在让我们看看使用 PHP 如何实现这一功能: // 依据姓氏排序 usort($data, function ($item1, $item2) {...$item['last_name']; }, $new_data['thirties']); // 数组转换为字符串并以行分隔符分隔 $final = implode("\n", $result);...// 译注:原文是 $final = implode($results, "\n"); implode函数接收两种顺序的参数,为了保持与文档一致所以我这边做了调整。...查看官方文档获取更多这个迷人的类库的使用细节:https://laravel.com/docs/collections 提示: 你还可以获取这个 Collection 类独立安装包,在使用 laravel

2.1K20

Laravel系列6.4】管道过滤器

如果指定了可选参数 initial,该参数将用作处理开始时的初始值,如果数组空,则会作为最终结果返回。...callback 这个回调函数会有两个参数,分别是 carry 携带上次迭代的返回值,如果迭代是第一次,那么这个值就是 initial 。另一个参数是 item ,也就是数组中的每个值。 看不懂吧?...前两段测试的结果可以看出,通过第一个数组传递进去,然后调用 sum() 方法,我们完成了累加的功能,输出了一个唯一的结果值。...之前的 bootstrap() 过程中,我们已经所有的 app/Http/Kernel.php 中注册的中间件绑定注册到了服务容器中。因此,这个 pipes 数组中,就是我们所有的中间件信息。...;最后一个 else 也就是 pipe 是一个对象,那么 passable 和 stack 作为它的参数

4.1K20

两个非常棒的 Laravel 权限管理包推荐

有两个包做得很好,作者也还在积极维护: Spatie 的 Laravel-permission Joseph Silber 的 Bouncer 特别提及:santigarcor/laratrust,它是一个已经停止维护的...这两个包都已经假设你已经有一个默认的 Laravel 用户数据库表,没有任何角色和权限的结构。 它们会添加自己的表和字段。 这两个包都在 README 上有非常清晰的文档来描述各自的用法。...('writer'); 角色也可以同步: // 所有当前角色将从用户中删除并替换为给定的数组 $user->syncRoles(['writer', 'admin']); Bouncer $user->...assign('admin'); $user->assign(['writer', 'admin']); $user->retract('admin'); 非常好的一点是两个包都可以接受单独的角色或数组...edit articles'); Bouncer $user->allow('ban-users'); $user->allow(['ban-users', 'edit-articles']); 你可以模型名称作为第二个参数传递

4.1K30
领券