向视图中传递变量

使用with()方法

return view('articles.lists')->with('title',$title);

直接给view()传参数

return view('articles.lists',['title'=>$title]);

使用compact

return view('articles.lists',compact('title','intro'));

使用Migration

php artisan make:migration create_articles_table --create='articles'

php artisan migrate:rollback

php artisan migrate

时间处理库Carbon

$article->published_at = Carbon\Carbon::now();

.env中我们设置了APP_DEBUG=true

404页面,在resources/views/errors/文件夹下创建一个404.blade.php

使用illuminate/html

安装

1、composer require illuminate/html

2、提供Service Provider和指定Facade

Request表单验证

1、php artisan make:request StoreArticleRequest 这个命令生成的文件位于app/Http/Requests/

2、会有两个方法:authorize()和 rules() 。

authorize()可以这样简单地理解:我们在处理这个表单请求(通常是一个post请求)的时候是否是需要进行身份验证,这种验证是指:比如A发表的评论,B能不能进行编辑。如果不能,则保留返回false,如果可以,则修改返回true。那么我们这里的逻辑是:既然是发表文章,在我们这个站点注册的用户(如果开放注册的话)都是可以发表文章的,所以我们首先修改authorize()方法,将其返回值改为:return true;

然后对于rules()方法,我们需要在这里设置我们的验证规则,比如我们可以设置下面这个的验证规则:

3、将整个StoreArticleRequest类的实例以$request变量传入store()方法

如果你不想错误信息为英文,可以到resources/lang/en/validation.php修改,或者你直接创建一个新的语言文件包。

使用Validation

$validator = Validator::make($input, [ 'title' => 'required|min:3', 'body' => 'required', ]);

if ($validator->fails()) { }

setAttribute

1、在Article.php中添加下面的方法:

public function setPublishedAtAttribute($date)
{
$this->attributes['published_at'] = Carbon::createFromFormat('Y-m-d',$date);
}

这里注意这个写法set+字段名+Attribute,还有的就是使用驼峰法。比如你要加密密码的时候可以这样:

public function setPasswordAttribute($passowrd)
{
$this->attributes['password'] = Hash::make($passowrd);
//仅仅是举例
}
这里将published_at字段作为Carbon对象来处理,注意在文件头部使用use Carbon\Carbon;来引入Carbon。

Article.php添加一行代码使published_at作为Carbon对象来处理:

protected $dates = ['published_at'];

queryScope
1、
$articles = Article::where('published_at','<=',Carbon::now())->latest()->get();
$articles = Article::latest()->published()->get();

2、在我们的Article.php中增加下面的方法:

public function scopePublished($query)
{
$query->where('published_at','<=',Carbon::now());
}

这里注意一下写法scope+自定义的方法名字,还有就是一如既往的驼峰法。

关联表
 public function up()
{
Schema::create('article_tag', function (Blueprint $table) {
$table->increments('id');
$table->integer('article_id')->unsigned()->index();
$table->foreign('article_id')->references('id')->on('articles')->onDelete('cascade');
$table->integer('tag_id')->unsigned()->index();
$table->foreign('tag_id')->references('id')->on('tags')->onDelete('cascade');
$table->timestamps();
});
}

foreign():外键 references():参照字段 on():参照表 onDelete():删除时的执行动作 这里 cascade 是跟着删除,比如删除了某篇文章,我们将article_tag中包含article_id一样的记录也删除

getAttribute

 

laravel笔记的更多相关文章

  1. Laravel笔记目录

    一.MVC 1.路由 2.控制器与视图 3.控制器与路由的绑定 4.中间件 二.模式与数据库 1.数据库迁移 2.填充测试数据 3.ORM入门 4.分页 三.Laravel的生命周期 1.Larave ...

  2. laravel 笔记

    1.excel composer require maatwebsite/excel ~2.0.0 Maatwebsite\Excel\ExcelServiceProvider::class, 'Ex ...

  3. #Laravel 笔记# 多语言化 App::setLocale() 持久化。

    App::getLocale();获取当前语言 App::setLocale();设置语言配置文件 语言配置文件config/app.php locale 是默认语言,fallback_locale为 ...

  4. Laravel笔记--Eloquent 模型

    Eloquent 模型 默认继承use Illuminate\Database\Eloquent\Model类. 数据表名称与模型名称约定: 数据库的表名一般使用“蛇形命名法”命名.蛇形命名法要求单词 ...

  5. Laravel笔记记录

    1.获取当前控制器和action名称 request()->route()->getAction()

  6. (学习笔记)laravel 中间件

    (学习笔记)laravel 中间件 laravel的请求在进入逻辑处理之前会通过http中间件进行处理. 也就是说http请求的逻辑是这样的: 建立中间件 首先,通过Artisan命令建立一个中间件. ...

  7. 慕客网laravel学习笔记

    session中set方法使用 Session::set('user.username.age','18')嵌套使用得出$user = ['username'=>['age'=>18]]; ...

  8. laravel安装 笔记

    http://laod.cn/hosts/2015-google-hosts.html 谷歌FQIP laravel安装和设置流程 1安装composer , VirtualBox和Vagrant 下 ...

  9. Laravel学习笔记(三)--在CentOS上配置Laravel

    在Laravel框架上开发了几天,不得不说,确实比较优雅,处理问题逻辑比较清楚.     今天打算在CentOS 7上配置一个Laravel,之前都是在本机上开发,打算实际配置一下.     1)系统 ...

随机推荐

  1. ORA-01078、ORA-01565、ORA-17503、ORA-29701

    OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - ...

  2. 6月24日AppCan移动开发者大会礼品清单遭泄露

    6月24日,第一届AppCan移动开发者大会将在北京国际会议中心举办,大会以”平台之上,应用无限”为主题,全景展现移动应用发展趋势.AppCan 移动技术蓝图及80万开发者的技术实践成果. 大会现场礼 ...

  3. Android里面的命名规范

    前前后后接触安卓也有一段时间了,但是对于Android命名规范这块一直没有太注意过.导致有的时候写出来的代码,前后的风格根本不一样,今天在网上查了一下,正好对自己来说可以好好的总结一下. 首先在And ...

  4. linux eclipse

    方法一: 此外,众所周知,Eclipse是Java程序,因此很容易就实现了跨平台,也是众所周知,Java的大型程序非常吃内存,即使有512MB内存, 仍然感觉Eclipse的启动速度很慢.个人认为1G ...

  5. iOS高级编程之XML,JSON数据解析

    解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 一.X ...

  6. 24.task的运用

    任务就是一段封装在“task-endtask”之间的程序.任务是通过调用来执行的,而且只有在调用时才执行,如果定义了任务,但是在整个过程中都没有调用它,那么这个任务是不会执行的.调用某个任务时可能需要 ...

  7. java读取资源文件

    ResourceBundle bundle = ResourceBundle.getBundle("cn.liuning.resource.MessageResource"); b ...

  8. Struts2入门教程

    最近闲来无事,学习s2sh框架,这里先写一点struts2的入门 我的环境 eclipse 4.3.2 tomcat 7.0.52 jdk 1.7.0_45 struts2 2.3.16.3 在ecl ...

  9. Spark系列—01 Spark集群的安装

    一.概述 关于Spark是什么.为什么学习Spark等等,在这就不说了,直接看这个:http://spark.apache.org, 我就直接说一下Spark的一些优势: 1.快 与Hadoop的Ma ...

  10. 查mysql字段中的数字记录

    select * from a where nameregexp '^[0-9]+$' ;