前言

laravel5.6学习记录,学习最新的版本.

Laravel5.6

Controller

Contrller用来分担路由的工作,路由作为转发,大家啊各行其是…

控制器创建

1
2
// * 替换你的控制名称,后缀 Controller
php artisan make:controller *

这样就表示控制器创建成功,
命令会去创建app\Http\Controllers\TestController.php文件,
以及写入命名空间和默认继承基类等,都是自动化完成.

1
2
3
4
5
6
7
8
9
10
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class TestController extends Controller
{
//
}

如果要更懒一点,命令加上 --resource 会自动创建一个资源控制器,
资源控制器包括了增删改查等方法,可以满足大部分需求.

1
2
// * 替换你的控制名称,后缀 Controller
php artisan make:controller * --resource

资源控制器创建完成,这和创建普通控制器没有多大区别,只是多了一些常用方法.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
//app\Http\Controllers\TestzyController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class TestzyController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}

/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}

/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}

/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}

/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}

/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}

/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}

我们可以TestzyController把添加到路由中.

1
2
//web.php
Route::Resource('testzy', 'TestzyController');

再查看一下系统的路由信息.

可以看到各个方法对应的URL,请求方式,路由名称等信息,都是一一对应的,

这是按照RESTful Api 设计生成的格式,get是从服务器取资源、post是新建资源、put是
更新完整资源、patch更新部分资源、delete是删除资源.

资源控制器的路由命名

添加了资源控制器到路由着中,命名方式不再是->name('')的方式.

1
2
3
4
5
6
7
Route::Resource('testzy', 'TestzyController', ['names' =>
[
'index' => 'indexahhh',
'create' => 'createahhh'
]
]);
//是第三个参数,传一个二维数组

此时路由信息,我们修改成功

控制器讲到这里,下面也说下创建模型.

Model

Model是来和数据库打交道的

创建模型

1
2
3
// 创建一个新的 Eloquent 模型类
// 我习惯把模型放到Models里
php artisan make:model Models/Test

创建成功.

1
2
3
4
5
6
7
8
9
10
11
//app\Models\Test.php
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Test extends Model
{
//
}

同样的,命令把文件和命名空间、继承等都弄好了.

模型对应的数据库迁移文件可以自己创建,当然也可以在创建模型的时候一起创建,
只需要加上 -m就ok.

如果加上-rmc,会自动创建Model、资源控制器、迁移文件,懒人必备

1
2
3
// 创建一个新的 Eloquent 模型类
// 我习惯把模型放到Models里
php artisan make:model Models/Testzy -m

会生成几个文件.

1
2
3
//一个Model,一个迁移文件
app\Models\Testzy.php
database\migrations\2018_02_22_113638_create_testzies_table.php

End.