Laravel 第一本中文新手书籍《Laravel 入门教程》

教程 Summer ⋅ 于 2016-12-08 20:59:36 ⋅ 最后回复由 沈益飞 2017-03-24 21:37:46 ⋅ 39152 阅读
k7wwMpJduq.jpg

封面由 Laravel China 的创始人兼首席体验官,设计师 安正超 设计。

链接

说明

Laravel 是出了名的学习门槛高,虽然有很棒的 文档,可惜文档的目的是为了快速查阅框架功能,对于新手来说并不友好。在 Laravel China 社区 上,也经常看到新手因为没有一个好的入门学习,而遇到各种奇奇怪怪的问题,如使用 Windows 作为开发环境导致 .env 加载错乱花了一个多星期 DEBUG 到白头发多了好几根。有时候可以在他们贴出来的代码中看到非常糟糕的编码习惯,如把业务逻辑写在 routes.php 文件里。如果在学习的一开始,有好的入门课程,很多这些弯路都是可以避免。

萌生写这本书的念头已经有一两年了,因为创业中有很多挑战,个人职能的改变(架构师、技术合伙人、UI 设计师、产品设计师、创始人),有很多东西要学,怕精力不够用,所以迟迟未敢下笔。期间也一直在观察,希望有人会写这样的一本书,那样我就有退却的理由。直到有一天 发哥 对我建议,我们可以一起写,我有 项目开发经验,他有时间。终于,在 8 月份开始起稿 《Laravel 入门教程》http://tutorial.laravel-china.org ,中间因为 公司业务变动 的事情,断断续续的写着,最终在今日面世。

写书真不简单,尤其是写一本 Laravel 入门的书籍,更是难度很高,要把控好技术话题的数量,不能一次性暴露太多信息给读者,避免新手的阅读难度太大。另一方面又兼顾实用性,让读者能真正从中学到技能。此中的权衡,也是这本书迟迟未出世的一个原因。

本书的特色:

  • 定位为现代化 Web 开发新手入门,Git 工作流、前端工作流、Github 使用等;
  • 使用 Laravel LTS 作为框架版本;
  • 一步一步构建一个完整的项目,读者可以很轻松的跟着书的线索动手做下去;
  • 使用真实项目开发中的流程工具,如:Git,Github,Gulp,代码上线等;
  • 最佳实践,代码中加入许多最佳实践,让新手从一开始就养成好习惯;
  • 崇尚 「DRY(Don't repeat yourself)不要重复自己」,让读者能真切体验到使用 Laravel 开发的愉悦感;

《Laravel 入门教程》适用于以下用户

  • 几乎零基础,想入门 Web 开发的;
  • 有 PHP 经验,准备学习 Laravel 的同学;
  • 学过 Laravel 但是遇到阻力的;
  • 全栈工程师入门课程。

后续教程

目前计划中有:

  • 《Laravel 进阶教程》
  • 《Laravel 开发规范》
  • 《Laravel 实战 - 构建 API》
  • 《iOS 开发》
  • 《安卓开发》

因为正在运营一家 技术公司 https://yousails.com/ ,工程实力将会是我们的核心竞争力,所以我计划把这一系列课程打造为一套全栈工程师的培训课程,这套课程也会成为我们公司的工程师技术培训教材。

@Summer | Work at: 优帆远扬,我们正在招聘 全职伙伴Remote 工程师,欢迎加入 :bowtie:

本帖已被设为精华帖!
本帖由 Summer 于 2个月前 取消置顶
回复数量: 125
  • moell 热爱我的热爱
    2016-12-08 21:31:52

    Summer 出品,必属精品!赞

  • zhuzhichao MOD Lalala Demacian !
    2016-12-08 22:02:35

    :+1: 支持!

  • monkey 写尽可能少的代码
    2016-12-08 23:43:43

    这本书脉络太清晰了,非常适合新手入门 :+1: :+1:

  • Ryan 一个离不开Manual,Google和IDE的菜鸟码农!
    2016-12-09 09:16:45

    赞,支持,期待后续教程

  • Cooper Web Developer
    2016-12-09 09:21:23

    ? 真棒

  • wilikeit
    2016-12-09 09:35:25

    嗯。支持

  • JobsLong 那么,下一步的行动是什么?
    2016-12-09 09:51:39

    也蛮适合拿来做企业内部培训的~~

  • chenyuanqi 最懒进化
    2016-12-09 09:56:04

    支持支持:+1:

  • overtrue MOD https://github.com/overtrue
    2016-12-09 10:40:11

    大家要注意重点好不好?封面作者是我 :laughing:

  • 杨进春
    2016-12-09 10:43:30

    @overtrue 首席体验官你好

  • liuwantao 学习、分享,共同进步
    2016-12-09 10:47:21

    支持一下

  • overtrue MOD https://github.com/overtrue
    2016-12-09 10:55:30

    @overtrue 请把 体验官改成 设计师 :laughing:

  • Summer MOD A Life-long learner.
    2016-12-09 10:57:37

    @overtrue 改好了,超神你看下满意不

  • lx1036 MOD Laravel,AWS,Angular
    2016-12-09 10:59:01

    非常赞,非常棒的入门教程。。这本书涵盖了Homestead,Migration,Model,Auth,Session,Mailer,Elixir等等基本知识点,非常适合入门学习。。而且作为WEB书籍,非常适合书籍内容细节优化与迭代。。总之,一本非常棒的入门教程,还了解到后续还有进阶教程和视频教程,值得期待。。对于有兴趣入门Laravel,这本书值得入手研读下。。

  • overtrue MOD https://github.com/overtrue
    2016-12-09 11:00:07

    @Summer oh my ga! 不用这么显眼,在特别小的地方提及一下就可以了,比如在评论里 :laughing:

  • Summer MOD A Life-long learner.
    2016-12-09 11:01:14

    @overtrue 我其实准备在封面上加上去的,但是摆半天没摆好

  • overtrue MOD https://github.com/overtrue
    2016-12-09 11:01:40

    @Summer 别别这样太吓人了

  • Summer MOD A Life-long learner.
    2016-12-09 11:01:41

    谢谢上面的兄弟们支持哈

  • 纸牌屋弗兰克 The journey is the reward.
    2016-12-09 11:18:57

    顶!

  • billow
    2016-12-09 12:21:41

    :+1:
    不过好像已经有一本中文书籍出版了吧

  • Summer MOD A Life-long learner.
    2016-12-09 14:14:04

    @billow 哈哈,也是,知道那本,改了标题了

  • Destiny 将来的你一定会感谢现在努力的自己!
    2016-12-09 14:50:03

    :punch: 永远支持!

  • kylesean
    2016-12-09 15:37:42

    支持,But a little bit expensive

  • Macken https://macken.me
    2016-12-09 16:03:50

    已购买,准备好好研读~ :smiley:

  • weychen 一个php爱好者,希望让更多的人爱上php
    2016-12-09 16:42:46

    兄弟,free才是王道呀

  • overtrue MOD https://github.com/overtrue
    2016-12-09 18:00:21

    @weychen 不同意

  • 颜⑧
    2016-12-09 18:25:06

    最近要转向laravel ,看来2小时,很好的入门教程 。有了这本入门教程 相信和很快熟悉起来。 :+1:

  • ElfSundae
    2016-12-10 13:46:29

    支持:+1:

  • JokerLinly 小渣渣的进击之路
    2016-12-11 11:40:54

    @overtrue 封面超好看!跟你的代码一样简洁~:kissing_heart:

  • 2016-12-11 11:41:40

    没有个目录吗?

  • overtrue MOD https://github.com/overtrue
    2016-12-11 13:47:14

    @JokerLinly :sailboat:

  • Crny
    2016-12-11 14:05:03

    @overtrue 超神好

  • overtrue MOD https://github.com/overtrue
    2016-12-11 14:07:07

    @Crny 发哥好

  • mingyun
    2016-12-11 22:18:15

    厉害了

  • 落雪
    2016-12-12 15:42:46

    有优惠一点吗

  • PHPer PHPer
    2016-12-12 17:00:35

    真的很好的教程~~期待下面的进阶教程

  • JasonXt Penta Kill
    2016-12-12 18:13:48

    可以 很强势!

  • xhh110
    2016-12-12 22:30:48

    @overtrue 注意到了。。。很强势

  • skywingfs
    2016-12-13 14:41:59

    期待后面的进阶课程

  • koke218
    2016-12-13 15:44:58

    刚看了一遍,只能说适合入门,希望入门教程开源,进阶教程再开始收费。。

  • super86worm
    2016-12-14 11:48:53

    非常喜欢这样形式的入门教程,希望进阶教程也延续这样的讲述方式,用实际项目来串各个知识点,会一如既往的支持下一部教程。

  • overtrue MOD https://github.com/overtrue
    2016-12-14 15:34:16

    @koke218 呵呵,这样不好吧兄弟,那么辛苦搞出来的免费,那作者投入的时间也是钱啊

  • 匿名用户
    2016-12-14 18:13:52

    @koke218 69块钱买一个入门不贵

    期待进阶教程

  • pengzhao
    2016-12-14 20:08:22

    已买!赞赞赞!

  • MRWang
    2016-12-15 06:49:30

    昨天买了以后快速的过了一遍,阅读起来很顺畅,发现一个错别字,已反馈,不过瑕不掩瑜。同时也感叹,我当时学习 Laravel 要是有这本书就好了,啃文档啃到吐血。

    同样期待进阶教程。

  • 痛饮狂歌
    2016-12-15 09:30:22

    转不了帐,提示不是好友。

  • overtrue MOD https://github.com/overtrue
    2016-12-15 10:04:48
  • 花归尘
    2016-12-15 15:34:26

    之前买过一本中文版书籍是适合 Laravel 进阶的,现在终于出了第一部中文新手书籍啦!Summer & Aufree 辛苦啦~开心,先赞一个,然后开看咯~:-)

  • wilikeit
    2016-12-15 15:42:16

    当当网有1本laravel书,但不是入门的

  • PHPer PHPer
    2016-12-15 15:57:40

    纠错:创建微博模型时候$ php artisan make:model Models/Status 模型名称写错了哈!应该是statuse

  • Summer MOD A Life-long learner.
    2016-12-15 16:04:22

    @PHPer 好快哈你,都看到这里了 :thumbsup: 数据模型是 statuses 的 单数形式 ,没错。

    沃日这个鬼解析。。。发了好几遍

  • PHPer PHPer
    2016-12-15 16:05:33

    @Summer 原来是这样啊 OK

  • 繁华落尽
    2016-12-15 16:28:39

    只能说,相对于我来说,买了后,感觉不值。当然,我只是说我的个人看法,作为入门教程,太杂了。对新手不友好,项目本身太简单了。当然在细节上还是不错的。不过价格定的高了。当然我只是说我的个人看法。看到楼上有人说了点看法被喷了。所以希望大家别喷我。

    希望作者后面能出进阶。

  • 繁华落尽
    2016-12-15 16:38:23

    @繁华落尽 说的有点重了。哈哈。总之瑕不掩瑜,毕竟有比没有强太多了。

  • Summer MOD A Life-long learner.
    2016-12-15 17:25:56

    @繁华落尽 首先感谢反馈 :smile_cat:

    在设计此书知识框架的时候,我们选择偏「Web 开发实战」堆栈,主要是比较应用实战,这些技能在工作中都能派上用场。

    实际项目 开发中会涉及到很多技术话题,这里还只是挑了最少、最基本的来讲,对于 PHP 新手来说确实比较杂。本来还想为每个章节还加上「集成测试」来着,后来觉得确实对新手不怎么友好,就去除掉。

    实际项目 开发中,只是懂 PHP 和 Laravel 是远远不够的。举例像 Git 的一些操作,很多同学加入新团队,一上来 Team Leader 就会让你克隆一份项目代码。你如果没有经验的话,你会发现就这一个简简单单的,非常基础的动作,你得折腾了大半天。当然,生产环境中的 Git 版本管理流程远比此书里面介绍的复杂多,不过至少能从这里开始。

    再次感谢反馈 :beers: ,欢迎同学们反馈哈,这样能增加对这本书的理解。

  • jw嘉华 j 了个 w
    2016-12-16 16:26:42

    看完了过来评论的。我倒觉得放进去这些除了 Laravel 的知识挺好的,帮我之前的东一块西一块学习到的知识串了起来了,整个教程跟着做下来很顺畅。感谢 @Summer 大大的出书,Summer 出品,必属精品,赞赞

  • overtrue MOD https://github.com/overtrue
    2016-12-16 18:00:43

    @tobe 现在随便去哪家饭店与朋友吃个饭也大于 68 元了,或者买杯咖啡也几十块,我不明白为啥当这个价格花在别人辛苦好几个月时间认真做出来的东西上就会觉得贵呢?你的观点就是说,你与朋友聊天吃饭,或者喝一杯咖啡所产生的价值要比他俩这份知识财富更高嘛。实在很难理解。

  • jiehuangwei
    2016-12-16 18:18:36

    @Summer 什么时候出进阶教程啊,把里面的IOC,DI,容器等核心的设计思想,疏通疏通

  • overtrue MOD https://github.com/overtrue
    2016-12-16 18:39:49

    @tobe 嗯,我没激动,你说得是对的,但是, free 是主流,我们只能尽量去做,为啥 Laravel 作者去培训还要收费呢?为啥 Laravel 国外的相关书籍都要收费呢?而且都不便宜? free 是主流 是没错,但是要看哪些方面啊,免费的交流社区,免费的翻译文档,免费分享的知识贴子,免费的 composer package,以及免费开源的项目源代码,我们做的免费并不少啊。作者想为自己加班加点做出来的东西获取一点回报我觉得没有任何错误,包括我在使用的高频软件的时候都是尽量正版,比如 Sublime Text, Sketch, CleanMyMac, Moom, Charles 这些,它们给我带来的价值远远超过购买授权的价格 N 倍,所以我觉得它们很便宜。收取费用还有一个好处是驱使作者去更新维护,开源的最大痛点在于长久的保持更新,目前这点做得最好的只有收费软件。

  • Summer MOD A Life-long learner.
    2016-12-16 21:05:25

    @jiehuangwei 书籍定位的问题啦,这本书的定位就是那些需要「就业培训」的人,他们想「正经的」学习 PHP、Web 实际开发的知识,此书作为自学的基础资料之一。

    对于「生存技能」的学习来说,几十块钱真不算什么,上培训班那都是一万起跳的。连这点决心都下不了,即使书是免费的,最后也难以保证能学习下去。

    另外,就像本文说的,后面我会出系列课程,这一系列课程会作为我的公司工程师做技能培训使用,这一切都在说明,这本书书我们的定位很清晰,就是为了「专业技能培训」。我想说的是,我原本是打算收费 199 的 :smile_cat: ,现在算是折扣价了。

    @overtrue 非常感谢超哥的认同,超哥就是这么讨人喜欢 :rose:

  • vacker
    2016-12-17 01:16:40

    刚学完第七章,我是新手,第一次接触Laravel,说实话,69元很值,我是支持收费的!
    if (你是大神) {
    你没必要花这个冤枉钱买这书,自己看文档就好了啊} else {
    新手看文档很吃力,花69元学到的技能远不止值这点钱,买了很划算 }

  • vacker
    2016-12-17 01:20:35

    @Summer 建议 建立一个 付费购买书了的人的 QQ或微信 群,方便新手学习交流,提问什么的。

  • Summer MOD A Life-long learner.
    2016-12-17 16:04:05

    @vacker 建议收到,我去弄个读者群

  • 小千
    2016-12-17 20:24:12

    当年如果这本书就好了,不过我还是要买一本拜读下。:)

  • hainuo
    2016-12-17 21:17:17

    👍

  • zhangwei900808 我来自一个古老的星球,1609年来到地球,在地球上居住了将近400年(这可是...
    2016-12-17 21:42:52

    我还特地关注了一下源代码,为什么源代码里面没有Repository目录,不是说正式工作环境需要Repository模式吗,难道这本书是直接在Controller里面写业务逻辑吗?@Summer 求解答,我也准备买一本拜读。

  • vacker
    2016-12-18 19:51:55

    @Summer 老大,读者群弄好了没?

  • 凡尘爵士
    2016-12-19 11:17:03

    会有持续教程更新吗?

  • 大师兄
    2016-12-20 17:54:03

    有定的基础了,不知道买了这本书后续还能享受到什么?例如将来下个LTS出来后这本书是否会升级又或者买了这个书将来买高级点的教程会不会有优惠?

  • Summer MOD A Life-long learner.
    2016-12-21 08:01:07

    @大师兄 不建议购买。没有优惠

  • Summer MOD A Life-long learner.
    2016-12-21 08:01:52

    @vacker 群好啦,微信里面找我让我拉你就行

  • yang22st
    2016-12-21 16:17:21

    支持!

  • 咖啡是個軟件猴
    2016-12-23 06:54:27

    @Summer 这本哪里有卖呢?

  • 老财 一个喜欢写代码的产品经理
    2016-12-24 00:49:39

    说下我的感受,价格值不值,说到底还是你自己对自己有没有一个定价,免费才是最贵的,百度搜索 “laravel 教程”,出来的一堆免费,估计都够你坑一个月,可能最后看完还不明白什么是homestead,因为免费嘛,都是碎片,结果你的时间浪费了,和这个对比,你说¥68值不值?你的时间永远都是最贵的!。
    最早看到这个教程的时候,我大致浏览了下目录,觉得偏入门(我已经入门)帮助不大,也以为是免费,没怎么留意。后来发现要付费,又是laravel-china.org的官方出品,来兴趣了,坦白讲,现在付费和免费,是我判断一个虚拟产品质量高下的一个很重要的依据,于是果断付费了,为啥呢?看看人家花了时间整理的精华呗,因为我在学习laravel的过程中,这个网站的几篇中文档是我无数弯路后找到最佳质量的,后来一直常驻我的chrome标签页,随时用,随时查,效率高,节省了不少时间,这种信任之下,当然应该支持,看后也觉得不错,感叹早几个月看到,我应该提前入门Laravel至少一个月。

    另外,我就很想付费 @overtrue ,期待他开发一套支持企业版微信或者第三方授权框架的 微信SDK,大笑~~~

    file

  • 老财 一个喜欢写代码的产品经理
    2016-12-24 00:51:51

    @老财 本人不是托,喷子勿扰!

  • Summer MOD A Life-long learner.
    2016-12-24 06:43:58

    @老财 谢谢财哥支持哈 :rose:

    @overtrue 超哥是不是可以搞个众筹 :smile_cat:

  • overtrue MOD https://github.com/overtrue
    2016-12-24 18:40:20

    @Summer @老财 现在已经支持开放平台,但是企业版本还没支持

  • 老财 一个喜欢写代码的产品经理
    2016-12-24 20:09:33

    @overtrue Easy We Chat帮助不少企业快速稳定的接入微信体系,获益的人不在少数,创造的价值也无法估量,希望越来越多受益者去打赏

  • Vainl
    2016-12-24 21:45:00 ⋅ via iOS 客户端

    没有线上阅读的习惯,要是实体书的话会毫不犹豫买。

  • overtrue MOD https://github.com/overtrue
    2016-12-25 00:32:20

    @老财 感谢!

  • M1racle php 初心者
    2016-12-25 17:07:22

    已购,看了2章,简单的说两句吧,自己以前啃文档,也写出来了一个简单的博客,这个教程,我觉得非常适合入门laravel的人,或者说像我这样,以前的知识很零碎不紧凑的人阅读,虽然我觉得内容有些浅尝辄止,(我自己更希望后续的文章能够更加深入一些)但是却能够帮我理清一些自己以前并不是很清楚的脉络问题,至于价格,仁者见仁吧。

  • 一个萝卜一个我
    2016-12-26 16:21:08

    购买后是不是后续的进阶教材也可以看啊?

  • 夜晚的雨
    2016-12-26 16:43:10

    看了一遍,也照着做了一遍。但是就是后面7章开始就崩盘了。自从出现了这个错误开始。

    Swift_TransportException in AbstractSmtpTransport.php line 383: Expected response code 250 but got code "530", with message "530 5.7.1 Authentication required "

    我尝试搜索Google,php artisan config:cache但依然没有解决。猜测是出现在.env环境配置的改变上。

    还有同一文件的同一方法的的代码变更,有时有点突兀,前面有点代码,后面又突然没有。
    比如UserController的构造方法。
    可能是只做了一遍的缘故,我再重做几遍试试。

  • 落雪
    2016-12-26 16:52:24

    @夜晚的雨 不要百度不要百度不要百度,在Mail.php里面不必生命form name 了。Summer在控制器里面已经生明了

    
    就是163的有点坑 各种限制。
  • 茄子 教练,我想写代码
    2016-12-27 11:21:36

    微信群里反馈了一个问题,这里再贴一次。 10.2.1 『粉丝』表的构建 的示例代码:

    public function up()
    {
        Schema::create('followers', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('user_id')->index();
            $table->integer('follower_id')->index();
            $table->timestamps();
        });
    }

    这里给关系表加上了 timestamp 字段,关系表的 timestamps 在heroku 环境下的postgres 不会自动插入创建时间值(在mysql下也不会,不过会填充为 00:00:00),点击关注按钮的时候会报错。
    而且,关系表,一般也不需要 timestamp 吧

  • 颜⑧
    2016-12-27 12:16:51

    教程跑了2遍,进阶什么时候出啊 ,希望年前出。

  • tima59
    2017-01-05 11:59:41

    不好意思,因為本身為台灣人,
    想請問有其他的付款方式嗎(無法實名認證)?
    謝謝

  • Neal 平平淡淡才是真
    2017-01-11 12:00:46

    为什么不出纸质版呢

  • sinosmond
    2017-01-18 07:25:16

    很不错的教程,风格类似当年 symfony 的 askeet,适合初学者。 感谢笔者的辛苦付出!

    为发挥WEB书的优势(纸质技术书都是黑白的),提个小建议:将每个代码段比之前代码段添加的代码启用另外的加亮风格以示区别,加强 “用户体验” :-)

  • Summer MOD A Life-long learner.
    2017-01-18 09:45:32

    @sinosmond 好建议

  • iMactool
    2017-01-18 12:19:55

    希望能加入自动化测试章节 :-)

  • baalchina
    2017-01-21 22:11:46

    2.2章,关于创建sample应用的

    sites:
        - map: homestead.app
          to: /home/vagrant/Code/Laravel/public
        - map: sample.app # <--- 这里
          to: /home/vagrant/Code/sample/public # <--- 这里

    这里Sample应用应当是放在home/vagrane/Code/sample/public下的吧

    而在使用composer的时候命令是
    $ composer create-project laravel/laravel sample --prefer-dist "5.1.*"
    这样代码的位置似乎是不对的?

    因为我按照文档说明建立的sample应用打开提示是No input file specified.,所以不太确定是哪里出问题了。

    谢谢,新手,还请多多指教

  • Summer MOD A Life-long learner.
    2017-01-22 06:45:18

    @baalchina laravel 使用 sample/public 来作为 web root,你可以重启 vm 试试。请下次有问题发个帖子出来,不要在这里直接问啦。

  • Summer MOD A Life-long learner.
    2017-01-22 06:45:34

    @iMactool 有在考虑中 :smile_cat:

  • baalchina
    2017-01-22 13:02:24

    @Summer thanks。我重做了一遍搞定了。

    ps,本来想发新贴子的,后来看到网页上有勘误连接,就到这里来了...

    thanks!

  • 無铭
    2017-01-23 18:48:07

    招人吗?我也算是优秀的工程师了:relaxed:

  • Summer MOD A Life-long learner.
    2017-01-23 19:21:48

    @無铭 我让 @monkey 哥联系你咯

  • Hazel
    2017-01-31 00:26:07

    看到评论里面竟是一些争论免费与否,定价高低的言论,感觉特别无趣,每个人对事物的追求不同,自身的经济条件不同当然对事物的看法也不同,没有必要争论。 反而是干净简洁的排版和书的介绍吸引了我,既然像说的那么好,对新手这么友好,作为小白的我果断就买了开始学习。

    我是昨天下午买的,刚看了01环境配置的1.2开发环境搭建就发现了错误,让我措手不及。

    本书在阅读指南中说:

    由于接下来的教程有时会在两个不同的机器环境上(本机环境和虚拟机环境,大部分情况下是在虚拟机环境上)来调用命令行输入,因此我们约定,在本机上调用的命令输入使用 > 符号,在虚拟机上调用的命令使用 $ 符号。

    以下命令行运行在虚拟机里:
    $ echo "I am in VM!"
    I am in VM!

    以下命令行运行在 主机 上:
    (这里是尖括号)> echo "I am in Host Machine!"
    I am in Host Machine!

    然而在1.2中就出现了矛盾:

    默认 Homestead 会将我们本机的 ~/Code 文件夹映射到 /home/vagrant/Code 文件夹上。现在我们本机还没有 ~/Code 文件夹,让我们来创建一个:
    $ cd ~
    $ mkdir Code
    我们可以在该文件夹下放置我们所有的 Laravel 项目,Homestead 将会该文件夹下的项目自动映射到虚拟机的 /home/vagrant/Code 文件夹上。

    所以我这是在主机上创建还是在虚拟机上创建???

    当然这个我还是比较能分辨的,应该是代码前的符号写错了,可是!
    这让我不得不怀疑其他的代码是不是也是有问题,例如:

    SSH Key 需要我们自己手动生成。如果你之前使用过 Git 并对 SSH Key 进行过配置,那么这一项你可以直接跳过。
    我们可以通过运行下面命令来生成 SSH Key
    $ ssh-keygen -t rsa -C "your_email@example.com"
    Generating public/private rsa key pair.

    请问,这句命令是应该是在主机上还是在虚拟机上???那还有其他的代码呢???

    可能对于大神来说,这些问题可能十分可笑,但是!既然标榜是入门,那就请把门打开。环境搭建在我看来是最重要,因为这是所有后续学习的基础,如果连第一章都这么马虎的话,让人如何相信后面的内容。
    第一章还没看完,心中特别失望,不是因为觉得不值69块钱,而是觉得中国IT环境的浮躁,既然办了论坛,写出了教材,肩负的东西就不一样了。看来作者并没有真正理解写一份可以成为教材的初心。

  • Summer MOD A Life-long learner.
    2017-01-31 07:18:16

    @Hazel 感谢指出,已经改正。

  • Hazel
    2017-01-31 08:32:14

    按照书上说的加上自定义变量:
    自定义变量

    最后,如果你需要自定义一些在虚拟机上可以使用的自定义变量,则可以在 variables 中进行定义。

    variables:

    • key: APP_ENV
      value: local

    $ Vagrant up
    C:/HashiCorp/Vagrant/embedded/lib/ruby/2.2.0/psych.rb:370:in `parse': (): did not find expected '-' indicator while parsing a block collection at line 23 column 5 (Psych::SyntaxError)

    我想应该是缺了一个 “-” 删了之后就可以启动了。我就干脆不加了,反正本来的Homestead.yaml就没有自定义变量。

    然后就是
    vagrant@homestead:~$ vagrant halt
    The program 'vagrant' is currently not installed. You can install it by typing:
    sudo apt install vagrant
    并不work,搜了stackoverflow之后才知道
    You have SSHed into the vagrant machine. first execute exit to get back to your machine and then execute vagrant halt
    于是就好了~

    终于跨过了重重阻碍来到了下一章。

  • FrankLee
    2017-02-01 22:00:22

    作者你好,我今天刚开始看这本书,感觉对入门者来说确实是一个很不错的教材,整体了解之后学起来就驾轻就熟了。今天刚看到第七章,看7.2更新用户的时候碰到了个小问题。原文中一段代码是这样的:

        public function update($id, Request $request)
        {
            $this->validate($request, [
                'name' => 'required|max:50',
                'password' => 'required|confirmed|min:6'
            ]);
    
            $user = User::findOrFail($id);
            $user->update([
                'name' => $request->name,
                'password' => $request->password,
            ]);
    
            return redirect()->route('users.show', $id);
        }

    现在的用户编辑功能还有两个地方需要优化:

    1. 在每次更改个人资料的时候都输入完整的密码,才能更新其它信息,对于不想对密码进行更新的用户,这个过程会比较繁琐;
    2. 更新成功之后在页面上没有进行任何提示,而是直接跳转到用户的个人页面,用户体验非常不好;
      接下来让我们针对这两个问题对 update 方法进行优化。

    优化后将validate的代码改成了

        public function update($id, Request $request)
        {
            $this->validate($request, [
                'name' => 'required|max:50',
                'password' => 'confirmed|min:6'
            ]);
    
            $user = User::findOrFail($id);
    
            $data = array_filter([
                'name' => $request->name,
                'password' => $request->password,
            ]);
            $user->update($data);
    
            session()->flash('success', '个人资料更新成功!');
    
            return redirect()->route('users.show', $id);
        }

    原文:

    首先,我们将用户密码验证的 required 规则去掉,这意味着当用户提供空白密码时也会通过验证,因此我们还需要再添加一个 array_filter 对输入数据进行过滤,当用户密码为空时将其从数组中移除,避免将空白密码保存到数据库中。

    我按照书上做了,不过并没有任何变化,依旧必须输入两次密码才能顺利提交。查来查去没找到有对validate规则进行详细描述的,尝试在源码里找答案,不过失败了 OTZ.
    于是只能自己来了, 我猜想 :min:6的验证本身既包含required验证规则,confirmed貌似不接受传空,所以还是会报输入密码不一致的问题。最后将代码改为:

        $rule = empty($request->password) ? [
            'name' => 'required|max:50',
        ] : [
            'name' => 'required|max:50',
            'password' => 'required|confirmed|min:6'
        ];
        $this->validate($request, $rule);
        $user = User::findOrFail($id);
        $data = array_filter([
            'name' => $request->name,
            'password' => $request->password,
        ]);
        $user->update($data);

    还望指导,谢谢。

  • SadCreeper
    2017-02-06 14:19:33

    反馈一个小错误:

    2.3:静态页面

    访问 http://sample.app/about 页面,则会看到 "帮助页"。

    这里有一个对应错误

  • KevinYang
    2017-02-06 18:21:45

    想读纸质书啊 怎么办

  • Hazel
    2017-02-07 11:21:12

    第3.2章节中gulp在Laravel 5.4中已经不能用了。应该用npm run watch

  • SadCreeper
    2017-02-08 16:37:35

    反馈一个拼写错误:

    7.2.2 编辑失败:

    第一段代码中:

    'password' => bcrypt($request->password);,

    多了一个分号

  • SadCreeper
    2017-02-09 11:16:29

    反馈一个错误:

    7.4:列出所有用户,数据填充部分

    编辑 UsersTableSeeder 的那部分代码,是不是少了 填充 id = 1 的用户的数据

    我记得做前两遍的时候是有的

  • Summer MOD A Life-long learner.
    2017-02-09 14:01:06

    @SadCreeper 好的,感谢,估计昨天做了修改遗留了个 Bug

  • Aufree 混迹于 GitHub(Aufree)微博(@李锦发)
    2017-02-09 14:22:56

    @SadCreeper 感谢反馈,不过 7.4 之前一直是没有填充 id = 1 用户数据的,到 7.5 的时候加上管理员的删除操作时才有。

  • Heroic 左手代码,右手诗
    2017-02-10 11:54:42

    @Aufree 个人觉得在修改重置密码之后无法登陆的 BUG 时的做法不是很优雅,这样的改动太大了。

    无法登陆的原因是框架在封装重置密码时在 ResetsPasswords.php 中的 resetPassword 方法中对密码做了一次 bcrypt 加密,加上原来模型中设置 password 属性时做的一次加密,从而造成了二次的 bcrypt。

    建议把 ResetsPasswords.php 这个 trait 中对密码的处理去掉。

    
        /**
         * Reset the given user's password.
         *
         * @param  \Illuminate\Contracts\Auth\CanResetPassword  $user
         * @param  string  $password
         * @return void
         */
        protected function resetPassword($user, $password)
        {
            // $user->password = bcrypt($password);     // User Model 中设置了 password 的属性,这样会造成二次 bcrypt。
            $user->password = $password;
    
            $user->save();
    
            Auth::login($user);
        }
    
    
  • LeeC
    2017-02-22 00:00:30

    照着书准备敲完所有代码了,书是非常好,我在鸡蛋里挑骨头,说下几点意见吧。

    • 每一节后面希望能够评论,这样子交流起来更加实时;
    • 购买了入门级的读者,购买进阶课程时能否打个折扣?
  • wwhu668 腐烂的小蘑菇
    2017-02-26 02:27:53

    反馈:

    4.7 更新用户对象 - 第四章、用户模型

    最后一句话:你也可以通过查阅 相关文档 来进行深入学习。

    相关文档地址有误。

  • 天使爱人间 世界很大,带着爱的一切都将如愿以偿
    2017-03-01 17:57:07

    @billow 中文在哪里可以买到?

  • 赵亚博 终身学习
    2017-03-05 21:22:15

    3.2 样式美化 yarn install命令问题

    使用yarn install 安装的时候提示error,建议使用add代替install,是不是我版本的问题导致的?

    error `install` has been replaced with `add` to add new dependencies. Run "yarn add gulp" instead.
  • billow
    2017-03-10 16:02:36

    @天使爱人间 你在京东搜一下就知道了

  • Destiny 将来的你一定会感谢现在努力的自己!
    2017-03-14 23:07:17

    好吃的评论,好多的点赞!!!!!!!希望入门的朋友们可以买一本看看,反正又不贵

  • Alex331349470 凡尘中一枚小小程序猿!
    2017-03-15 17:13:45

    虽然用Laravel做过很多项目,但是读了这本书获益匪浅,破万卷认新知,已经读了6遍,感觉蛮好,基础方面得到了巩固,希望下一个LTS能继续Laravel的辉煌!

  • Nixus
    2017-03-16 17:44:12

    看了几十屏的评论,前排的全部一片叫好!!!
    让我想起了淘宝刷单大军的杰作!如果所有的评论,只有叫好,没有反馈问题,那这一定是这本书的悲哀!
    还好,在后面看到了很多反馈,这些反馈最终让我决定,这是一本值得购买和学习的书!

  • dfzhou6
    2017-03-17 10:31:44

    你们好,请问我 win10 配置 vb + vagrant + homestead 环境时,出现 "VBoxManage.exe: error: Failed to create the host-only adapter",我的 vb 是 5.1.18,vagrant 是 1.9.2 版本;后来我换了和教材一样的 vb + vagrant 版本,还是不行,请问大家有遇到类似的问题吗

  • Nixus
    2017-03-17 11:39:57

    请问,已读完的读者,书中遇到的错误,提交给作者后是否有更正?
    在看 PHP之道 的时候,发现有读者在回复中提出翻译错误的地方,但是译者并未更正

  • 一亩三分地儿
    2017-03-21 15:32:30

    哦?哪里有卖的?当当上查不到

  • 董诚怡
    2017-03-23 11:24:42

    书本很赞,不过希望收费能合理一点。毕竟学生党。这个内容量建议收49的吧。当然只是个建议。期待Summer大大的下一本书。

  • 沈益飞
    2017-03-24 09:13:04 ⋅ via iOS 客户端

    已入手。

  • 张雷
    2017-03-24 16:11:03

    虚拟书?不是实物吗~

  • 沈益飞
    2017-03-24 21:37:46

    学习的时候发现一个地方,作为处女座强迫症,发现了空格不对地方。

    7.4列出所有用户

    <a href="{{ route('users.show', $user->id )}}" class="username">{{ $user->name }}</a>

    改为

    <a href="{{ route('users.show', $user->id) }}" class="username">{{ $user->name }}</a>

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter