总结
豆包 AI 助手文章总结

Laravel 5.4 入门系列:路由与视图

巴扎黑
发布: 2018-05-16 16:22:39
原创
2592人浏览过

主要知识点:

  • 从路由到视图的基本流程

  • 数据传递

我们来看看第一讲最后的页面是怎么出来的。先来看看路由:

// /routes/web.php
Route::get('/', function () {
    return view('welcome');
});
登录后复制
登录后复制

用大白话说,就是当我们访问网站根目录的时候,就返回 welcome 视图,我们修改下视图的内容:

// /resources/views/welcome.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    你好, Laravel
</body>
</html>
登录后复制
登录后复制

可以看到,定义返回的视图时,可以省略 .blade.php 后缀,该后缀代表使用 Laravel 的 Blade 模板功能,以后会介绍到。

现在,再次访问,变成了我们定义的内容。

数据传递

我们在视图中,也可以使用变量的形式。首先,在路由的函数中返回给视图 name 变量:

// /routes/web.php
Route::get('/', function () {
    $name = "Zen";
   return view('welcome',['name'=>$name]);
});
登录后复制
登录后复制

也可以写成:

// /routes/web.php
Route::get('/', function () {
   $name = "Zen";
   return view('welcome')->with('name',$name);
});
登录后复制
登录后复制

更为常见的写法是使用 php 提供的 compact 函数,compact 函数的作用是创建一个包含变量名变量的值的数组,更加灵活和简便:

// /routes/web.php
Route::get('/', function () {
    $name = "Zen";
      $age = 99;
      $sex = "男";
      return view('welcome',compact('name','age','sex'));;
});
登录后复制
登录后复制

在视图中显示该变量:

// /resources/views/welcome.blade.php
// 省略
<body>
    你好, <?php echo $name?>
</body>
登录后复制
登录后复制

虽然可以嵌入 PHP 语言来显示变量,不过 Laravel 提供了更为简洁的语法:

// /resources/views/welcome.blade.php
<body>
   你好, {{ $name }} ,你的年龄是 {{ $age }}, 你的性别是 {{ $sex }}
</body>
登录后复制
登录后复制

或者:

// /resources/views/welcome.blade.php
<body>
   你好, {!! $name !!} ,你的年龄是 {!! $age !!}, 你的性别是 {!! $sex !!}
</body>
登录后复制
登录后复制

这两者有什么区别呢,看下面的例子:

$data = '<alert>123</alert>'
登录后复制
登录后复制

在视图中两者的输出:

  • {{ $data }} 将会输出 123

  • {!! $data !!} 将会输出警告框

也就是说:

  • {{ 变量名 }} : 转义输出

  • {!! 变量名 !!} :原生输出,比如图片、链接、js 代码等


 路由与视图

主要知识点:

  • 从路由到视图的基本流程

  • 数据传递

我们来看看第一讲最后的页面是怎么出来的。先来看看路由:

// /routes/web.php
Route::get('/', function () {
    return view('welcome');
});
登录后复制
登录后复制

用大白话说,就是当我们访问网站根目录的时候,就返回 welcome 视图,我们修改下视图的内容:

// /resources/views/welcome.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    你好, Laravel
</body>
</html>
登录后复制
登录后复制

可以看到,定义返回的视图时,可以省略 .blade.php 后缀,该后缀代表使用 Laravel 的 Blade 模板功能,以后会介绍到。

现在,再次访问,变成了我们定义的内容。

数据传递

我们在视图中,也可以使用变量的形式。首先,在路由的函数中返回给视图 name 变量:

// /routes/web.php
Route::get('/', function () {
    $name = "Zen";
   return view('welcome',['name'=>$name]);
});
登录后复制
登录后复制

也可以写成:

// /routes/web.php
Route::get('/', function () {
   $name = "Zen";
   return view('welcome')->with('name',$name);
});
登录后复制
登录后复制

更为常见的写法是使用 php 提供的 compact 函数,compact 函数的作用是创建一个包含变量名变量的值的数组,更加灵活和简便:

// /routes/web.php
Route::get('/', function () {
    $name = "Zen";
      $age = 99;
      $sex = "男";
      return view('welcome',compact('name','age','sex'));;
});
登录后复制
登录后复制

在视图中显示该变量:

// /resources/views/welcome.blade.php
// 省略
<body>
    你好, <?php echo $name?>
</body>
登录后复制
登录后复制

虽然可以嵌入 PHP 语言来显示变量,不过 Laravel 提供了更为简洁的语法:

// /resources/views/welcome.blade.php
<body>
   你好, {{ $name }} ,你的年龄是 {{ $age }}, 你的性别是 {{ $sex }}
</body>
登录后复制
登录后复制

或者:

// /resources/views/welcome.blade.php
<body>
   你好, {!! $name !!} ,你的年龄是 {!! $age !!}, 你的性别是 {!! $sex !!}
</body>
登录后复制
登录后复制

这两者有什么区别呢,看下面的例子:

$data = '<alert>123</alert>'
登录后复制
登录后复制

在视图中两者的输出:

  • {{ $data }} 将会输出 123

  • {!! $data !!} 将会输出警告框

也就是说:

  • {{ 变量名 }} : 转义输出

  • {!! 变量名 !!} :原生输出,比如图片、链接、js 代码等

以上就是Laravel 5.4 入门系列:路由与视图 的详细内容,更多请关注php中文网其它相关文章!

路由优化大师
路由优化大师

路由优化大师是一款及简单的路由器设置管理软件,其主要功能是一键设置优化路由、屏广告、防蹭网、路由器全面检测及高级设置等,有需要的小伙伴快来保存下载体验吧!

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
豆包 AI 助手文章总结
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号