<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yefeng215315434的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yefeng215315434</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yefeng215315434]]></copyright><item><title><![CDATA[23、ThinkPhP5：关联-五(多对多)]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/84634224</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/84634224</guid><author>yefeng215315434</author><pubDate>Thu, 29 Nov 2018 16:27:39 +0800</pubDate><description><![CDATA[1、同时添加多个配送区域


        //同时添加多个配送区域
        $region = Region::getByName('北京市');
        $region-&amp;gt;shippingArea()-&amp;gt;saveAll([
            ['shipping_area_name' =&amp;gt; '珠三角'],
            ['shipping_...]]></description><category></category></item><item><title><![CDATA[22、ThinkPhP5 ：关联-四(多对多)]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/84629850</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/84629850</guid><author>yefeng215315434</author><pubDate>Thu, 29 Nov 2018 15:48:44 +0800</pubDate><description><![CDATA[1、需要有三个表



 2、创建tp_region、tp_shipping_area 模型


class Region extends Model{  //全国地区表
    
    
    //地区模型
    public function shippingArea(){
        
        //area_region 配送与区域关系表
        //shippin...]]></description><category></category></item><item><title><![CDATA[21、ThinkPhP5：关联-三(一对一)]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/84385883</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/84385883</guid><author>yefeng215315434</author><pubDate>Fri, 23 Nov 2018 13:30:12 +0800</pubDate><description><![CDATA[新建Car.php模型，Users.php两个模型。

1、在Users模型里写个方法


        public function car(){
            
            return $this-&amp;gt;hasOne('Car','uid','user_id'); //hasOne 一对一关系
            
        }
        

2、...]]></description><category></category></item><item><title><![CDATA[20、ThinkPhP5 ：关联-二(一对多)]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/84106931</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/84106931</guid><author>yefeng215315434</author><pubDate>Thu, 15 Nov 2018 16:48:03 +0800</pubDate><description><![CDATA[1、一对多关联查询


        $user = Users::get(1);
        $comm = $user-&amp;gt;comm; //查询这个人user_id 为1 的这个所有的评论。
        dump($comm);
        //SELECT * FROM `tp_comment` WHERE `uid` = 1
        //也可以先查询后使用
   ...]]></description><category></category></item><item><title><![CDATA[19、ThinkPhP5 ：关联-一(一对多)]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/84066252</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/84066252</guid><author>yefeng215315434</author><pubDate>Wed, 14 Nov 2018 16:04:33 +0800</pubDate><description><![CDATA[一对一关联：HAS_ONE

一对多关联：HAS_MANY

多对多关联：BELONGS_TO_MANY

1、一对多关联

分别创建users、comment 两个模型

评论模型


    
namespace app\index\model;

use think\Model;

class Comment extends Model{
    

    
}

用户USERS模型 

...]]></description><category></category></item><item><title><![CDATA[18、ThinkPhP5 ：输入和验证-下]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/84027732</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/84027732</guid><author>yefeng215315434</author><pubDate>Tue, 13 Nov 2018 14:11:38 +0800</pubDate><description><![CDATA[1、单独自己写验证规则


    //验证规则
    protected $rule = [
        ['nickname','require|min:5','昵称必须|昵称不能少于短于5个字符'],
        //['email','email','邮箱格式错误'], //更多 内置规则 http://www.kancloud.cn
        ['email','chec...]]></description><category></category></item><item><title><![CDATA[17、ThinkPhP5：输入和验证-上]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/84027286</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/84027286</guid><author>yefeng215315434</author><pubDate>Tue, 13 Nov 2018 13:43:41 +0800</pubDate><description><![CDATA[

 

 1、创建验证器


在index模块|validate验证器|Users.php 这个命名规范是同模型（表）保持一致。
&amp;lt;?php 

namespace app\index\validate;

use think\Validate;

class Users extends Validate{
    
    //验证规则  具体的验证规则：https://www.kanc...]]></description><category></category></item><item><title><![CDATA[16、ThinkPhP5 ：查询范围]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/83892607</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/83892607</guid><author>yefeng215315434</author><pubDate>Fri, 09 Nov 2018 10:21:54 +0800</pubDate><description><![CDATA[查询范围
对于一些常用的查询条件，我们可以封装成查询范围来进行方便的调用。
例如，邮箱地址为thinkphp@qq.com和status为1这两个常用查询条件，可以定义为模型类的两个查询范围方法

模型配置

//查寻范围、email查寻
//查询范围 把经常需要查询的地方 放在一个模式的方法里面，以后每次需要用的时候调用一下这个方法就可以了。
//方法命名规范 scope+查询范围名称


  ...]]></description><category></category></item><item><title><![CDATA[15、ThinkPhP5 ：转换与自动完成]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/83855964</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/83855964</guid><author>yefeng215315434</author><pubDate>Thu, 08 Nov 2018 13:03:56 +0800</pubDate><description><![CDATA[

 类型转换
对于前面的时间戳birthday的例子，还可以进行进一步的简化，这里需要用到类型强制转换的功能，在User模型类中添加定义：


 &amp;lt;?php
 namespace app\index\model;

 use think\Model;

 class User extends Model
 {
     protected $dateFormat = 'Y/m/d';
  ...]]></description><category></category></item><item><title><![CDATA[14、ThinkPhP5：读取器与修改器]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/83821811</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/83821811</guid><author>yefeng215315434</author><pubDate>Wed, 07 Nov 2018 17:25:34 +0800</pubDate><description><![CDATA[1、读取器
前面读取用户生日的时候，使用了date方法进行日期的格式处理输出，但是每次读取数据后都需要这样处理就显得非常麻烦。
使用读取器功能就可以简化类似的数据处理操作，例如，我们给Users模型添加读取器的定义方法


&amp;lt;?php 
    
    namespace app\index\model;
    use think\Model;
    class Users exten...]]></description><category></category></item><item><title><![CDATA[13、ThinkPhP5 ：模型和关联-下]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/83794322</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/83794322</guid><author>yefeng215315434</author><pubDate>Tue, 06 Nov 2018 21:06:30 +0800</pubDate><description><![CDATA[1、批量新增用户数据


    	$user = new Users();
    	$list = [
    			['nickname' =&amp;gt; '张三', 'email' =&amp;gt; 'zhanghsan@qq.com', 'birthday' =&amp;gt; strtotime('1988-01-15')],
    			['nickname' =&amp;gt; '李四', 'email'...]]></description><category></category></item><item><title><![CDATA[12、ThinkPhP5 ：模型和关联-上]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/83793243</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/83793243</guid><author>yefeng215315434</author><pubDate>Tue, 06 Nov 2018 20:16:23 +0800</pubDate><description><![CDATA[1、设置数据表

数据库前缀+当前的模型类名（不含命名空间）


namespace app\index\model;
use think\Model;

class Test extends Model{
	
	//设置表名
	//protected $name = 'admin' ; //这样Test这个类就 意味着是在操作admin这张表
	
	// 设置完整的数据表（包含前缀）
	prot...]]></description><category></category></item><item><title><![CDATA[11、ThinkPhP5：查询语言下]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/83789574</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/83789574</guid><author>yefeng215315434</author><pubDate>Tue, 06 Nov 2018 16:30:46 +0800</pubDate><description><![CDATA[1、获取列数据


        
        //获取 某行某列某个值
        $name = Db::name('data')-&amp;gt;where('id',1)-&amp;gt;value('name');
        //SELECT `name` FROM `tp_data` WHERE `id` = 1 LIMIT 1 
        //获取某列
        $nam...]]></description><category></category></item><item><title><![CDATA[10、ThinkPhP5：查询语言-上]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/83781695</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/83781695</guid><author>yefeng215315434</author><pubDate>Tue, 06 Nov 2018 13:15:59 +0800</pubDate><description><![CDATA[1、查询表达式


        //查询表达式
        $table = Db::name('data');
        $result = $table-&amp;gt;where('id',1)-&amp;gt;find();
        //也可以写成
        $result = Db::name('data')-&amp;gt;where('id',1)-&amp;gt;find();
   ...]]></description><category></category></item><item><title><![CDATA[9、ThinkPhP5 数据库-事务、链式操作]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/83752042</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/83752042</guid><author>yefeng215315434</author><pubDate>Mon, 05 Nov 2018 17:22:13 +0800</pubDate><description><![CDATA[1、查询构造器


//查询构造器
Db::table('tp_data')-&amp;gt;insert(['id'=&amp;gt;100,'name'=&amp;gt;'thinkphp','status'=&amp;gt;1]);
//更新记录
Db::table('tp_data')-&amp;gt;where('id',2)-&amp;gt;update(['name'=&amp;gt;'hello']);
//查寻记录
$list = D...]]></description><category></category></item><item><title><![CDATA[8、ThinkPhP5 数据库-基本操作]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/83747987</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/83747987</guid><author>yefeng215315434</author><pubDate>Mon, 05 Nov 2018 14:29:15 +0800</pubDate><description><![CDATA[1、数据库配置

database.php 进行配置


    // 数据库类型
    'type'            =&amp;gt; 'mysql',
    // 服务器地址
    'hostname'        =&amp;gt; '127.0.0.1',
    // 数据库名
    'database'        =&amp;gt; 'demo1',
    // 用户名
    'us...]]></description><category></category></item><item><title><![CDATA[6、ThinkPhP5 ：请求和响应 - 响应]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/83712322</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/83712322</guid><author>yefeng215315434</author><pubDate>Sun, 04 Nov 2018 08:02:01 +0800</pubDate><description><![CDATA[1、请求返回类类型


$data = ['name'=&amp;gt;'thinkphp','status'=&amp;gt;1];
print_r($data) ;//错误
return json($data);//返回json
return json($data,201); //返回json 并返HTTP回请求状态
return xml($data); //返回XML
$this-&amp;gt;assign('n...]]></description><category></category></item><item><title><![CDATA[5、thinkphp5请求和响应 - 请求]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/83685080</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/83685080</guid><author>yefeng215315434</author><pubDate>Sat, 03 Nov 2018 11:32:48 +0800</pubDate><description><![CDATA[
Request对象的作用是与客户端交互，收集客户端的Form、Cookies、超链接，或者收集服务器端的环境变量。
Request对象是从客户端向服务器发出请求，包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据，然后通过Request对象的相关方法来获取这些数据。Request的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项。
...]]></description><category></category></item><item><title><![CDATA[隐藏TP5 index.php apach 服务器配置]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/83661236</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/83661236</guid><author>yefeng215315434</author><pubDate>Fri, 02 Nov 2018 20:45:28 +0800</pubDate><description><![CDATA[设置apach的 httpd.conf文件

1、加载 mod_rewrite.so
确认加载了 mod_rewrite.so 模块（将如下配置前的 # 号去掉）：


LoadModule rewrite_module modules/mod_rewrite.so

2. AllowOverride None 将None改为 All；允许读取.htaccess文件 


&amp;lt;Director...]]></description><category></category></item><item><title><![CDATA[bootstrapValidator 当form Button为手动提交时 怎么配合 bootstrapValidator 完成FORM ajax数据提交并且页面不跳转]]></title><link>https://blog.youkuaiyun.com/yefeng215315434/article/details/83655535</link><guid>https://blog.youkuaiyun.com/yefeng215315434/article/details/83655535</guid><author>yefeng215315434</author><pubDate>Fri, 02 Nov 2018 15:02:39 +0800</pubDate><description><![CDATA[1、在HTML的FORM表单中设置BUTTON的type为BUTTON


                        &amp;lt;form role=&quot;form&quot; id=&quot;add_address_form&quot; action=&quot;&amp;lt;{:url('Address/add_address')}&amp;gt;&quot; method=&quot;post&quot;&amp;gt;
                            &a]]></description><category></category></item></channel></rss>