laravel学习四:控制器、视图、模型介绍

1、控制器总结

1、控制器命名:大驼峰+Controller.php

2、控制器文件创建使用命令行:php artisan make:controller TestController

自动生成三行代码:创建命名空间;导入命名空间;创建类并继承Controller,Controller.php在Controller目录下

3、接受用户输入数据:

接受用户输入的类:illuminate\Support\Facades\Input,该类里的一些静态方法:

Input::get('参数','如果参数没有被传递使用该默认值')

Input::all('');获取所有用户的输入

Input::get('');获取单个的用户输入

Input::only([ ]);获取指定几个用户的输入

Input::except([ ]);获取指定几个用户的输入以外的所有参数

Input::has('name');判断某个输入的参数是否存在。

上述方法既可以获取get中的信息,也可以获取post中信息。

在laravel中如果需要使用facedes的话,但是又不想写那么长的引入操作。则可以在config/app.php中定义长串的别名(在aliases数组中定义别名)。

提示:在laravel中,不仅仅Input门面可以获取用户的输入,Resquset门面也可以获取用户输入的,其语法和Input一样,也存在get、all、only等方法。

4、控制器中对视图的渲染和模型的调用等在路由一文中总结:https://blog.csdn.net/weixin_34128914/article/details/84545559

2、视图

1、在resource目录下创建相应的视图文件。

文件名称:login.blade.php,如果.php命名的,不能使用blade模板引擎的标签语法显示数据。两师徒文件同时存在,则.blade.php优先显示。

2、视图中使用函数:{{函数名(参数1,参数2....)}}  

3、循环、分支标签

@foreach($variable as $key=>$value)
//循环体
@endforeach
@if(条件表达式)
//执行语句
@elseif(条件表达式)
...
@else
//默认执行语句
@endif

4、模板的继承

父级页面编写: @yield('名字')  //在父级页面中占位。

子页面编写: @extends('需要继承的模板文件名')

通过session标签绑定区块/部件到父级页面。区块名称就是父级页面yield标签的参数名,继承的父模板文件名是一个完整的路径名。不是相对路径

@session(父级区块名称)

//代码

@endsession

5、引入子视图

<div>
    @include('shared.errors')
 
    <form>
        <!--表单内容 -->
    </form>
</div>

被引入的视图会继承父视图中的所有数据,同时也可以向引入的视图传递额外的数组数据:

@include('view.name', ['some' => 'data'])

还有其他常用的引入指令:

@includeIf:引入一个不能确定存在与否的视图

@includeWhen:根据给定的布尔条件来 @include 一个视图

@includeFirst:引入给定视图数组中的第一个视图

6、在laravel中系统封装了一个引入外部静态页面(js、css、image)的方法asset()

<!--常规写法-->
<link rel="stylesheet"  type="text/css" href="/css/app.css">
<!--laravel写法-->
<link rel="stylesheet"  type="text/css" href="{{asset('css')}}/app.css">

asset()方法中的参数可以是多级目录,也可以是单级目录。两个方法都可以。

3、模型(AR模式)

AR模式即Active Record模式,是一个对象-关系映射(ORM)技术。每个AR 类代表一张数据表(或视图),数据表(或视图)的字段在 AR 类中体现为类的属性,一个AR 实例则表示表中的一行记录。

1、模型默认定义在app目录下,但是为了管理,一般分目录进行创建,命名规则:表名(首字母大写).php

2、可以使用artisan命令创建模型:

 php artisan make:model Flight

如果要在生成模型时生成数据迁移,可以使用 --migration 或 -m 选项:

php artisan make:model Flight --migration
php artisan make:model Flight -m

创建完成后的结构代码:

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Flight extends Model
{
    //
}

3、模型关联表设置:

①:定义模型table属性来关联表:创建完成后,我们并没有告诉Eloquent,模型该使用哪一个数据表,还需要通过给模型上定义 table 属性,来指定自定义数据表:如果不指定,将使用类的复数形式「蛇形命名」来作为表名

②:Eloquent 也会假定每一个表都会有递增的整型 id 作为主键.。你可以定义一个受保护的 $primaryKey 属性来重写此约定,如果你的主键不是一个整数,你需要在模型上将受保护的 $keyType 属性设置为 string.

③:默认情况下, Eloquent 会假定你的表中存在 created_at 和 updated_at 字段. 如果你不想让 Eloquent 自动管理这俩个列, 可以在你的模型中将 $timestamps 属性设置为 false。

4、模型操作数据库:一旦你创建了模型 和他关联的数据表, 你就可以从数据库中获取数据了. 将每一个模型想象成一个强大的查询构造器,你可以使用它来更快速的查询表。举个栗子:

$flights = App\Flight::where('active', 1)
               ->orderBy('name', 'desc')
               ->take(10)
               ->get();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章