首先在composer.json文件中的require加上"gregwar/captcha":"1.*",在用cmd 更新compose update
然后就可以正常的在控制器中使用了
引入文件
use Gregwar/Captcha/CaptchaBuilder; use Session;//用于缓存验证码信息 //创建验证码 $builder = new CaptchaBuilder(); $builder->build(100,40,null);//宽高字体 $builder->getPhrase();//获取验证码 Session::flash("captcha",验证码的值);//缓存起来 $builder->output();//输出返回验证码图片。 Session::get("captcha");//获取验证码值
资源文件css js 图片等放在public中,模板引用是用
href="{{asset('public目录下的路径')}}"
$php_errormsg保存了最新一次的错误信息。
$HTTP_RAW_POST_DATA原生的POST数据
$http_response_header数组,HTTP响应头,应用于局部
$argc传递给脚本的参数数目,最小值为1,就是当前文件名。
$argv传递给脚本的参数数组。
例如用户有很多文章,某个国家有很多用户,那么某个国家有很多文章。
在国家模型中
public function posts(){ return $this->hasManyThrough(最终模型,中间模型,国家id,用户id); }
同一对一的差不多,不同的是使用hasMany声明
public function posts(){ $this->hasMany(....关联模型); } User::find(1)->posts();//获取多个模型
多对多时,有中间表
可以通过动态属性pivoy获取中间表字段。
一对一的关系
例如user表中的用户有对应的一个user_accounts
则在User模型中定义方法
public function account(){ return $this->hasOne('App/Model/UserAccount); } User::find(1)->account();//获取对应的UserAccount
同时可以在UserAccount里面定义
public function user(){ return $this->belongsTo('App/User); }
这里是没有指定外键的,可以在声明的时候指定对应的外键,在第二个参数
父模型一般使用id作为主键的,如果不是它来关联,则指定第三个参数
hasOne/belongTo('AppUser',$foreign_key,$local_key)
八种事件creating created updating update saving saved deleting delete。前后触发。
可以在任何地方去注册模型事件,可以在服务提供者的boot()
Post::saving(function($post){ echo "saving event happen"; });
如果是ing事件,返回false则对应的真实操作将会停止。
常用的查询可以自定义方法到模型中,要加前缀scope,例如要使用popular方法,则..
public function scopePopular($query){ return $query->where(...); }
这时就可以直接用 模型::popular()->.....
获取再删除 ...find(5)->delete()
直接删除 destroy(5) 5指的是主键id
软删除 其实是标记数据为删除,查询时就过滤。真实数据是没有被删除的。
在模型类中使用use SoftDeletes;这个trait。
要对软删除的数据库表添加delete_at字段
软删除使用方法 ...find(5)->trashed();
如果想查询到软删除了的记录,用withTrashed()。
只查询软删除记录用onlyTrashed()。
使用restore()方法恢复软删除
使用forceDelete()强制删除了,真删
create方法可以批量插入数据,这时候模型中使用属性$fillable和$guarded声明哪些属性了以批量设置,哪些不可以。这两个只能定义一个,非白就黑。
当要对禁止字段赋值时,使用save方法。模型类也可以用update方法更新数据。