php deel views,视图 - Views

视图 (View)

基本用法

视图里面包含了你应用程序所提供的 HTML 代码,并且提供一个简单的方式来分离控制器和网页呈现上的逻辑。视图被保存在 resources/views 文件夹内。

一个简单的视图看起来可能像这样:

Hello, <?php echo $name; ?>

这个视图可以使用以下的代码传递到用户的浏览器:

Route::get('/', function()

{

return view('greeting', ['name' => 'James']);

});

如你所见,view 辅助方法的第一个参数会对应到 resources/views 文件夹内视图文件的名称;传递到 view 辅助方法的第二个参数是一个能够在视图内取用的数据数组。

当然,视图文件也可以被存放在 resources/views 的子文件夹内。举例来说,如果你的视图文件保存在 resources/views/admin/profile.php,你可以用以下的代码来返回:

return view('admin.profile', $data);

传递数据到视图

// 使用传统的方法

$view = view('greeting')->with('name', 'Victoria');

// 使用魔术方法

$view = view('greeting')->withName('Victoria');

在上面的例子代码中,视图将可以使用 $name 来取得数据,其值为 Victoria。

如果你想的话,还有一种方式就是直接在 view 辅助方法的第二个参数直接传递一个数组:

$view = view('greetings', $data);

把数据共享给所有视图

有时候你可能需要共享一些数据给你的所有视图,你有很多个选择:view 辅助方法;Illuminate\Contracts\View\Factory合约 (contract);在 视图组件 (view composer) 内使用通配符。

这里有个 view 辅助方法的例子:

view()->share('data', [1, 2, 3]);

你也可以使用 view 的 Facade:

View::share('data', [1, 2, 3]);

通常你应该在服务提供者的 boot 方法内使用 share 方法。你可以选择加在 AppServiceProvider 或者是新建一个单独的服务提供者来容纳这些代码。

备注: 当 view 辅助方法没有带入任何参数调用时,它将会返回一个的 Illuminate\Contracts\View\Factory 合约 (contract) 的实现 (implementation)。

确认视图是否存在

如果你需要确认视图是否存在,使用 exists 方法:

if (view()->exists('emails.customer'))

{

//

}

从一个文件路径产生视图

你可以从一个完整的文件路径来产生一个视图:

return view()->file($pathToFile, $data);

视图组件

视图组件就是在视图被渲染前,会调用的闭包或类方法。如果你想在每次渲染某些视图时绑定数据,视图组件可以把这样的程序逻辑组织在同一个地方。

定义一个视图组件

让我们在 服务提供者 内组织我们的视图组件。底下例子将使用 View Facade 来取得底层 Illuminate\Contracts\View\Factory合约的实现:

use View;

use Illuminate\Support\ServiceProvider;

class ComposerServiceProvider extends ServiceProvider {

/**

* Register bindings in the container.

*

* @return void

*/

public function boot()

{

// 使用类来指定视图组件

View::composer('profile', 'App\Http\ViewComposers\ProfileComposer');

// 使用闭包来指定视图组件

View::composer('dashboard', function()

{

});

}

/**

* Register

*

* @return void

*/

public function register()

{

//

}

}

备注: Laravel 没有默认的文件夹来放置类形式的视图组件。你可以自由的把它们放在你想要的地方。举例来说,你可以放在 App\Http\ViewComposers 文件夹内。

记得要把这个服务提供者添加到 config/app.php 配置文件的 providers 数组中。

现在我们已经注册了视图组件,并且在每次 profile 视图渲染的时候,ProfileComposer@compose 都将会被执行。接下来我们来看看这个类要如何定义:

use Illuminate\Contracts\View\View;

use Illuminate\Users\Repository as UserRepository;

class ProfileComposer {

/**

* The user repository implementation.

*

* @var UserRepository

*/

protected $users;

/**

* Create a new profile composer.

*

* @param UserRepository $users

* @return void

*/

public function __construct(UserRepository $users)

{

// service container 会自动解析所需的参数

$this->users = $users;

}

/**

* Bind data to the view.

*

* @param View $view

* @return void

*/

public function compose(View $view)

{

$view->with('count', $this->users->count());

}

}

在视图被渲染之前,视图组件的 compose 方法就会被调用,并且传入一个 Illuminate\Contracts\View\View 实例。你可以使用 with 方法来把数据绑定到 view。

备注: 所有的视图组件会被 服务容器 (service container) 解析,所以你需要在视图组件的构造器类型限制你所需的任何依赖参数。

在视图组件内使用通配符

View 的 composer 方法可以接受 * 作为通配符,所以你可以对所有视图附加 composer 如下:

View::composer('*', function()

{

//

});

同时对多个视图附加视图组件

你也可以同时针对多个视图附加同一个视图组件:

View::composer(['profile', 'dashboard'], 'App\Http\ViewComposers\MyViewComposer');

定义多个视图组件

你可以使用 composers 方法来同时定义一群视图组件:

View::composers([

'App\Http\ViewComposers\AdminComposer' => ['admin.index', 'admin.profile'],

'App\Http\ViewComposers\UserComposer' => 'user',

'App\Http\ViewComposers\ProductComposer' => 'product'

]);

视图创建者

视图 创建者 几乎和视图组件运作方式一样;只是视图创建者会在视图初始化后就立刻执行。要注册一个创建者,只要使用 creator 方法:

View::creator('profile', 'App\Http\ViewCreators\ProfileCreator');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
毕业设计,基于SpringBoot+Vue+MySQL开发的社区医院管理系统,源码+数据库+毕业论文+视频演示 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的社区医院管理系统实现了病例信息、字典表、家庭医生、健康档案、就诊信息、前台、药品、用户、用户、用户表等功能。系统用到了关系型数据库中王者MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让社区医院管理系统更能从理念走到现实,确确实实的让人们提升信息处理效率。 关键字:社区医院管理系统;信息管理,时效性,安全性,MySql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值