tp5总结-2.向模板输出数据

一、使用assign()方法将数据传到视图

1. 需要继承think\Controller来使用的fetch()方法

$data = [
			'name' => 'Tommy',
			'sex'  => 'male',
			'age'  => '24'
		];
$this->assign($data);
return $this->fetch();

2. 可以直接使用的助手函数view()

$data = [
			'name' => 'Tommy',
			'sex'  => 'male',
			'age'  => '24'
		];
$this->assign($data);
return view();

二、直接将数据传递到视图

对于fetch()view(),我们除了可以传入模板位置参数外,还可以传入第二个参数给页面传递值。
但是,如果这样做,那第一个参数不能省略,可以为空字符串'',第二个参数必须为数组

$data = [
			'name' => 'Tommy',
			'sex'  => 'male',
			'age'  => '24'
		];
return view('',$data);//或 return $this->fetch('',$data);
//第一个参数必须要写,不写会报错
return view(模板地址,数据数组);

return $this->fetch(模板地址,数据数组);

例子汇总

<?php
namespace app\index\controller;
use think\Controller;

class Index extends Controller
{
    /* 渲染视图的时候给页面传递参数
		1.可以用assign()方法来绑定数据,它会将数据绑定到接下来你要渲染的页面上,绑定内容为数组;
		2.直接使用fetch()或view()方法,在第二个参数传入要绑定的数据,也是数组模式;
	*/

	// 1.使用assign + 助手函数
	public function one()
	{
		$data = [
			'title'=> '使用assign + 助手函数',
			'way'  => '$this->assign($data);<br>return view();<br>',
			'name' => 'Tommy',
			'sex'  => 'male',
			'age'  => '24'
		];
		$this->assign($data);
		return view();
	}

	// 2.使用assign + fetch
	public function two()
	{
		$data = [
			'title'=> '使用assign + fetch',
			'way'  => '$this->assign($data);<br>return $this->fetch(\'one\');<br>',
			'name' => 'Tommy',
			'sex'  => 'male',
			'age'  => '24'
		];
		$this->assign($data);
		return $this->fetch('one');
	}

	// 3.只使用view(),不用assign()
	public function three()
	{
		$data = [
			'title'=> '只使用view(),不用assign()',
			'way'  => 'return view(\'one\',$data);<br>',
			'name' => 'Tommy',
			'sex'  => 'male',
			'age'  => '24'
		];
		return view('one',$data);
	}

	// 4.只使用fetch(),不用assign()
	public function four()
	{
		$data = [
			'title'=> '只使用fetch(),不用assign()',
			'way'  => 'return $this->fetch(\'one\',$data);<br>',
			'name' => 'Tommy',
			'sex'  => 'male',
			'age'  => '24'
		];
		return $this->fetch('one',$data);
	}
	
	// 5.如果数据少的时候,可以直接写到方法里,个人不推荐这种写法
	public function five()
	{
		return view('one',['title'=>'直接写到方法里','way'  => '直接写到方法里<br>','name'=>'Tommy','sex'=>'male','age'=>24]);
		// 或 return $this->fetch('one',['name'=>'Tommy','sex'=>'male','age'=>24]);
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苦夏木禾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值