thinkphp5 模型输出

我们的Car模型只是建了个空模型而已

Car表的内容

thinkphp5 模型输出

toArray输出数组

可以使用toArray方法将当前的模型实例输出为数组
 

public function car()
	{
		$car = Car::get(1);
		dump($car->toArray());
	}
输出后
array(4) {
  ["id"] => int(1)
  ["brand"] => string(6) "捷豹"
  ["plate"] => string(8) "京v2999"
  ["uid"] => int(1)
}

用hidden隐藏toArray中不想输出的字段

在前面的表中,iduid是不想输出到用户中的,那么我们可以用hidden将其隐藏不输出
不输出iduid
$car = Car::get(1);
		dump($car->hidden(['id','uid'])->toArray());
输出后
array(2) {
  ["brand"] => string(6) "捷豹"
  ["plate"] => string(8) "京v2999"
}

用visible输出toArray中指定字段

如果我们一个表中有很多字段,可是只有很少的要输出,那么可以用visible指定输出哪些字段
只输出brand字段
$car = Car::get(1);
		dump($car->visible(['brand'])->toArray());
输出后
array(1) {
  ["brand"] => string(6) "捷豹"
}

用append追加不存在的字段

如果我们用toArray时,想在显示在里面追加一个我们自己写的数据,那么可以用这个方法,如同追加了一个字段

car模型中添加

这儿结合了模型中计取器的使用

protected function getUidsAttr()
	{
		return "虽然没有uids,依然可以显示";
	}

控制器中使用

$car = Car::get(1);
		dump($car->append(['uids'])->toArray());
显示为
array(5) {
  ["id"] => int(1)
  ["brand"] => string(6) "捷豹"
  ["plate"] => string(8) "京v2999"
  ["uid"] => int(1)
  ["uids"] => string(37) "虽然没有uids,依然可以显示"
}

用append与现有字段结合输出

我们有时候会在数据表中只存储为数字,但到了前台却需要将数字转换为文字,这个例子就是这样的,只是除转换后输出外,还用append增加了一个虚拟字段,将新的数据在里面输出

car模型中内容

$uid 这个名称可任意定义,定义为$uidi
$data['uid'] :data是我们读取器传入的car表中uid字段的值,uid字段值是多少,请看上方放的数据表
protected function getUidsAttr($value,$data)
	{
		$uid = [1=>'管理员',2=>'信息员',28=>'待审核'];
		return $uid[$data['uid']];
	}

控制器中内容

$car = Car::get(2);
		dump($car->append(['uids'])->toArray());
输出为
array(5) {
  ["id"] => int(2)
  ["brand"] => string(6) "奔驰"
  ["plate"] => string(7) "京S111"
  ["uid"] => int(2)
  ["uids"] => string(9) "信息员"
}

toJson输出为Json格式

直接将car表内容输出为json格式
echo $car->toJson();
输出后
{"id":2,"brand":"奔驰","plate":"京S111","uid":2}

直接输出读取到的表数据,便是json格式

我们用$car = Car::get(2);读取了一整条数据
我们直接用echo输出echo $car;
输出后
{"id":2,"brand":"奔驰","plate":"京S111","uid":2}
可以看到便是json数据格式

评论

大侠名号:   验证暗号: 点击我更换图片

修远兮

在这里记录每一点自己需要的知识

添加创始人微信,一起交流心得

推荐文章RECOMMEND