Eloquent 入门
打赏作者

sonics34

评论能否加个回复的功能,类似于自动@

jllyb1989 回复 sonics34

@sonics34

JellyBool

是加一个回复按钮么?你可以直接输入@符号来回复啊 @sonics34

kanjiushi

不错,第一时间已观看。

JellyBool

谢谢观看。。 @kanjiushi

xiao

@JellyBool 如何将查询出来的集合中的时间字段,以Carbon对象输出给view

JellyBool

这是什么意思?不是可以直接{$article->published_at}么?

licaikai

@JellyBool

这里面说的实列是什么意思

JellyBool

没有就创建一个user @licaikai

hlbbs

亲,请教怎么嵌套循环啊?A表(a1,a2,a3 )B表(b1,b2,b3,b4)其中b4是A表的a1.刚学这个框架。请赐教!感谢

savior

从博客到现在看视频,学习了好多多。感谢楼主大神分享这些,让我框架小白能这么快认识laravel的强大。

JellyBool

并不是大神,常来看看呗 @savior

glon

为什么laravel会自动把aticle这个model自动对应到aticles这个表呢?

Addison 回复 glon

Eloquent 模型约定
除非数据表明确地指定了其它名称,否则将使用类的「蛇形名称」、复数形式名称来作为数据表的名称

Cyclone 回复 Addison

问个问题,蛇形名称的定义是啥?我上网搜过都没解释。。

Addison 回复 Cyclone

比如有一个 Model 类名称为UserPost,那么其数据表默认蛇形名称为: user_posts.在程序语言中,蛇形名称也常用于变量/方法的命名,与驼峰相对应.

Cyclone 回复 Addison

好的,知道了,谢谢科普!

zuosiwei

认真看视频 收货很大,感谢。

weiyang

非常感谢JellyBool分享这么好的视频教程。

Python

太赞了,一看就懂了,有个问题请教一下,安装phphub php artisan migrate --seed 一直报错 create_at 是个什么鬼

[Illuminate\Database\QueryException]                                                             
  SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'created_at'   
  (SQL: create table `users` (`id` int unsigned not null auto_increment primary key, `github_id`   
  int not null, `github_url` varchar(255) not null, `email` varchar(255) null, `name` varchar(255  
  ) null, `remember_token` varchar(255) null, `is_banned` tinyint(1) not null default '0', `image  
  _url` varchar(255) null, `topic_count` int not null default '0', `reply_count` int not null def  
  ault '0', `city` varchar(255) null, `company` varchar(255) null, `twitter_account` varchar(255)  
   null, `personal_website` varchar(255) null, `signature` varchar(255) null, `introduction` varc  
  har(255) null, `deleted_at` timestamp null, `created_at` timestamp default 0 not null, `updated  
  _at` timestamp default 0 not null) default character set utf8 collate utf8_unicode_ci) 
JellyBool

你打开相对应的文件看一下呗 created_at , timestamp default 0 not null @Python

Python

@JellyBool 我试试看,直接git phphub的代码 也不行 唉

JellyBool

注意phphub是laravel 4的版本,可能有一些不太一样。你可以仔细看看phphub的文档 @Python

Python

@JellyBool 谢谢 我去看看

nashJG

Jelly大神。laravel框架里做了SQL注入的防范么。用它的eloquent还需要做额外防注入吗

JellyBool

@nashJG 完全不用担心这个问题

_xurong

怎么删除实例或者修改实例中的一个字段啊?

_xurong
=> Carbon\Carbon {#670
     +"date": "2015-11-19 09:21:04",
     +"timezone_type": 3,
     +"timezone": "UTC",
   }

时区怎么修改啊,我在php.ini改了没有用

罗本爱范佩西

@_xurong 在config目录下的app中有个timezone

JellyBool

楼上这位仁兄不错啊,名字取得很nice,头像更加6.。。。 @罗本爱范佩西

罗本爱范佩西

@JellyBool 楼主更不错,哈哈,谢谢楼主的视频,然后赠个低价vip最好了。。。

JellyBool

这个实在不行,这个vip我觉得价格还是比较合理的 @罗本爱范佩西

罗本爱范佩西

@JellyBool 哈哈,继续支持

_xurong

@罗本爱范佩西 之前已经找到了,不过还是非常感谢:)

18369905258

支持@JellyBool,谢谢分享!

Python

@JellyBool 为什么直接创建admin表 实例化admin model,插入数据提示找不到admins 这个表,是不是每个表都要加s?才能找到

tonzoc

为什么laravel会自动把aticle这个model自动对应到aticles这个表呢?

夙诞

所有类似****.php都是默认关联****s数据表的么,可不可以手动选择呀

cnx7

我只想知道。 你用的什么终端?

JellyBool

iterm2 @cnx7

cnx7

配色好棒

霸气战苍穹

compser 安装laravel5的时候就有这个问题
一旦使用php解析器就会报错
google无果请问为什么呢

霸气战苍穹

已经解决,关键字冲突

dotasfans

故意输入错误后,看错误提示:Base table or view not found: 1146 Table articls doesn’t exist
表明,model与表的对应关系是,model后加上s。而且这里与大小写无关。或者理解为,在找表 的时候会自动转换为小写吧。另外,我实验过,model取名为Articles也就是我先加上s,依然没有问题,说明有s则不再加s了。
不知我的看法对否,请博主点评。这个问题,在评论里出现了好几次,博主一直没回答。希望这次能回答。

username

Eloquent实际上没什么用吧。都是用代码来操作CURD的。

JellyBool

额 laravel也没什么用,都是用代码写的框架 @username

wenqingzzz

Article::create($data);的时候要修改一下Article.php,添加上
protected $fillable = array(‘title’, ‘content’);才不会报错的,你的怎么不添加也可以啊?

回头看了一下,已经写了。

Admin

试了一下,laravel会自动填充created_atupdated_at,但是我习惯了用int存储时间,有办法让laravel支持么?或者站长说服我就用timestamps存时间

icool

不错的视频

beginnerLaravel

You are doing very good job Jelly, I am appreciated that. Thank you.
All the best.

JellyBool

ennnn… Thank You @beginnerLaravel

jryang

使用TINKER插入数据的意义是?

JellyBool

看个人喜欢吧 @jryang

遍地黄玫瑰

laravel5.2和5应该没有什么区别吧

JellyBool

还是有点区别的 @遍地黄玫瑰

thinkings

@Admin 我觉得LARAVEL自动生成满好的啊,为什么要自己整个INT来存时间戳

thinkings

@jryang 如果后面视频里,写程序代码时还需要用到交互界面里打的各种命令,权当练习。。

thinkings

@dotasfans 自动加s是框架的设定,习惯问题。
大小写应该是为了兼容,因为有的操作系统、数据库区分这个。为了换个系统用的时候 不会出错,所以应该是统一按小写来整的。。

xuexier

tinker的意义何在?

JellyBool

如果打字快,用tinker还是挺好的。几乎是即时反馈 @xuexier

冬城北-Jeff

我遇到一个问题,就是使用tinker插入数据时,如果插入中文会显示乱码,该怎么解决呢,谢谢。

JellyBool

这是系统的字符集问题吧,数据库应该不会乱码,没事还是用英文吧 @冬城北-Jeff

冬城北-Jeff

@JellyBool 不是啊,写入数据库中文还是现实乱码的,就是shell窗口显示的这样

zhl6522 回复 冬城北-Jeff

是shell脚本问题么?LANG=zh_CN.UTF-8

JellyBool

额。这个。。那还是用英文吧 @冬城北-Jeff

兜兜有金矿

怎么不能看了

JellyBool 回复 兜兜有金矿

不能看是指具体报什么错误

兜兜有金矿 回复 JellyBool

恩…视频加载出了一点问题

Uncaught TypeError: The element or ID supplied is not valid. (videojs)

JellyBool 回复 兜兜有金矿

那可能是视频加载出了点问题

兜兜有金矿 回复 JellyBool

···
我换了个浏览器也报错 好几天了
···

zhouweiji

H1:#谢谢楼主

xiaoxingxing

composer安装的laravel为什么没有vendor文件夹呢

zhl6522 回复 xiaoxingxing

有的,我安装的就有

xiaoxingxing

Warning: require(/Users/haozhenxing/laravel5/bootstrap/…/vendor/autoload.php): failed to open stream: No such file or directory in /Users/haozhenxing/laravel5/bootstrap/autoload.php on line 17,这是为什么呢?

JellyBool 回复 xiaoxingxing

执行一下 composer install 吧

harverychina

不错,不错,第一时间去实操一下。

edwin1990
composer install
mikezhang

站长,也可以这样查询 原理不太清楚 是语法糖吗?
App\Article::whereContent(‘content’)->get();

JellyBool 回复 mikezhang

算是的,背后就是指定了 content 这个字段

SunRock

insert时,报错SQLSTATE[HY000]: General error: 1364 Field ‘xxx’ doesn’t have a default value,可是我明明已经在my.cnf里面配置过了,not null的字段可以用空字符串,而且用sql语句插入数据也是可用的,为什么这里会报错呢

凌兵de肥肉

@JellBool 我发现在Lumen 里面的貌似不用 fillable, 是因为Base Model 里面的属性设置吗?什么原理?

JellyBool 回复 凌兵de肥肉

guard 属性设置了吧

yuesir

@userNotExist for test

LWJ

楼主:为啥我重启MINGW64 使用 save() 这句话就出错了? 下面是执行过程:
PHP Fatal error: Call to undefined function save() in eval()'d code on
line 1

问题解决了: 加 first=App\Article::find(1);前加个:first->new App\Article;

akunamatata

怎么让控制台打出彩色文本

JellyBool 回复 akunamatata

控制台?你自己配色一下就好了撒

a359611223

默认的Article模型对应默认的数据表articles
如果要指定数据表 protect $table = ‘my_article’;

不了了了了了之

Hello Jelly,
一个小问题啊。比如说我在tinker里闯建了一个实例,save的时候提示有typo error。那除了重新来过,有没有什么方法可以修改原本写好的attribute的名字。
谢谢啊,初学laravel,很多都不懂。

JellyBool 回复 不了了了了了之

save的时候提示有typo error 啥意思?上下键可以满足你的需求么?

不了了了了了之 回复 JellyBool

就是我在save into database的时候提示title写成了titile,所以现在除了重新写一个变量,有什么方法可以在原来写的变量里把titile改成title然后继续save into database

JellyBool 回复 不了了了了了之

这个。。。好像也只是回退回去(按向上的箭头)改了之后再 save 吧

不了了了了了之 回复 JellyBool

我后来实测发现title是有了,但是titile还是在。所以就直接重新写了。。。 anyways, thanks for getting back to me

JellyBool 回复 不了了了了了之

嗯哼,没事。你这个问题其实我也没找到很好的技巧。

有问题就问呗。我知道的一般都会认真回复

tkin1992

执行$article->save();返回了true,但是到PHPadmin里没看到变化啊,奇怪

JellyBool 回复 tkin1992

这种问题。。感觉需要注意一下操作顺序

tkin1992 回复 JellyBool

回复那么快,谢谢!没事了,我进MySQL里有,但phpmyadmin里没有,我自己看看

扬扬的小天地

@JellyBool 用的命令行工具是什么

wdgwgz

Eloquent ORM 一对一关联失败,使用的Laravel 5.5

有张users表,字段为 id、email、password 等等
有张user_infos表,字段为 id、user_id、avatar等等

在User的Model里定义了个 UserInfo方法
public function UserInfo(){
return $this->hasOne(‘App\Models\UserInfoModel’,‘user_id’,‘id’);
}

Controller里调用
User::find(1)->UserInfo();
得到的Model是空的,这个model转换为JSON是 :{}

JellyBool 回复 wdgwgz

user_infos 这个表存在 user_id 为 1 的 数据么?
User::find(1)->UserInfo 这样试试呢

wdgwgz 回复 JellyBool

数据是正确的,
User::find(1)->UserInfo(); 不行
试了下:User::find(1)->UserInfo 可以了,这是为什么呢?

JellyBool 回复 wdgwgz

User::find(1)->UserInfo()->get() 这样应该可以

wdgwgz

Dingo的Transformer

在Controller里用 this>collection(this->collection(xx,new xxTransformers) 的方式 return出去的JSON格式是这样的

{
data:[
{},
{}
]
}

如果我想在根节点添加 status_code、message参数呢?就像这样

{
status_code:200,
message:"success"
data:[
{},
{}
]
}

怎么做?

JellyBool 回复 wdgwgz

你用的是哪个版本的 laravel 和 dingo api

wdgwgz 回复 JellyBool

Laravel版本:5.5
dingo 版本:1.0.0-beta8

JellyBool 回复 wdgwgz

Laravel版本:5.5 直接用 API Resource 呗。JWT 也可以直接用 passport

https://www.codecasts.com/series/new-featura-in-laravel-5-5/episodes/12

foxriver123

@jellBool 我有个问题,在更新的时候我使用updateOrCreate的时候laravel不能像create方法一样帮我自动过滤掉_token,虽然使用save或者update也可以实现但是无法持久化模型,so what next?

JellyBool 回复 foxriver123

这个细节我倒是没注意过,你可以自己手动 request->except(’_token’)

foxriver123

已解决 except([’_token’]

foxriver123

laravel的设计上好像有点小瑕疵,模型类的create其实最终还是调用insert方法返回this,只不过在调用之前在create方面里面把_token这些东西去掉了。 但是laravel的模型类却却没有提供一个静态的update方法,当调用静态update的时候就直接去找构建查询的update方法了虽然也返回this却没有去掉_token,
那为什么它不加一个比如_update这类的静态方法,先把_token去掉在去调用构建查询的update并且返回$this那不是更好吗!

JellyBool 回复 foxriver123

可以,。目前来说,我觉得你的想法很不错,可以试着向 laravel 官方的 repo 发起 pr 讨论一下