向视图中传递变量

使用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. android获取手机录

    在Android开发中,读取手机通讯录中的号码是一种基本操作,但是由于Android的版本众多,所以手机通讯录操作的代码比较纷杂,在本文中进行一下总结. Android1.5是现在的Android系统 ...

  2. JavaScript高级程序设计之函数性能

    setTimeout 比 setInterval 性能更好 // 取代setInterval setTimeout(function self () { // code goes here setTi ...

  3. 2015 年开源前端框架盘点 TOP 20

    1.名称:Bootstrap 类别/语言:HTML.CSS.JavaScript 创建者: Twitter 人气:在Github上有91007 stars 描述:主流框架中毋庸置疑的老大,Bootst ...

  4. df du

    df命令详细用法 a:显示全部的档案系统和各分割区的磁盘使用情形 i:显示i -nodes的使用量 k:大小用k来表示 (默认值) t:显示某一个档案系统的所有分割区磁盘使用量 x:显示不是某一个档案 ...

  5. Boolean.parseBoolean("true") 和 Boolean.getBoolean("true");的区别及用法

    正确用法:boolean repeatIndicator = Boolean.valueOf("true").booleanValue();或者也可以使用Boolean.parse ...

  6. iOS学习之Object-C语言属性和点语法

    一.属性      1.属性的声明:在.h文件中使用@property声明属性.           @property NSString *name;       2.属性的作用是生成setter以 ...

  7. 基于xmpp openfire smack开发之Android客户端开发[3]

    在上两篇文章中,我们依次介绍openfire部署以及smack常用API的使用,这一节中我们着力介绍如何基于asmack开发一个Android的客户端,本篇的重点在实践,讲解和原理环节,大家可以参考前 ...

  8. 二、IRIG_B解码AC信号

    AC-----过零检测(MAX913ESA)---1khzB码信号(以0v为界大于0为高,小于0为低,的 方波信号) AC-----信号放大(TLE2022ID--mv到5v) ---系统电压转换(M ...

  9. Android -- 分享功能和打开指定程序

    打开指定程序                                                                                Intent intent ...

  10. 丢掉 WinPE,使用 DISKPART 来分区吧

    自 Windows Vista 之后的操作系统,如果在安装系统的时候使用 Windows 自带的分区功能,则会多出一个 100M 的系统保留分区.这会让一个物理硬盘,原先最多可以分 4 个主分区的,现 ...