Laravel控制器是Laravel框架的基本功能。最初, 我们以路由文件中的闭包形式处理请求逻辑。现在, 代替使用路由文件中的闭包, 我们使用控制器类。控制器用于处理单个类中的请求逻辑, 并且控制器在“ app / http / Controllers”目录中定义。 Laravel框架遵循MVC(模型视图控制器)体系结构, 其中控制器充当在模型和视图之间来回移动流量。
控制器的默认文件位于app / http / Controllers目录中。
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}
在上面的代码中, 使用了名称空间, 因为它允许你在同一应用程序的不同部分中使用相同的函数名称和类。例如,
namespace App\Http\functions1;
namespace App\Http\functions2;
假设我们必须运行名称为RunQuery()的函数。它们在不同的目录function1和function2中可用, 因此可以说名称空间避免了相同函数名之间的冲突。
‘use’用于将类导入当前文件。
让我们看看如何通过Git Bash窗口创建控制器。
步骤1:打开Git Bash窗口, 然后在Git Bash窗口中键入命令“ php artisan make:Controller PostsController”以创建Controller。
上面的屏幕显示名为PostsController的控制器已成功创建。
步骤2:现在移至你的项目, 并查看是否已创建PostsController文件。该文件的路径是:
C:\ xampp \ htdocs \ laravelproject \ app \ Http \ Controllers
上面的屏幕显示已创建PostsController文件。
下面给出了PostsController.php文件的默认代码:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PostsController extends Controller
{
//
}
上面的代码包含扩展Controller类的类, 但是该类不包含诸如create, update或delete之类的功能。现在, 我们将看到如何创建包含一些默认功能的控制器。
要创建Controller, 我们首先要从上一步中创建的项目中删除PostsController.php。
输入命令:
php artisan make:controller -resource PostController, 此命令用于创建控制器。
现在, 移至你的项目以查看是否已创建PostController文件。该文件的路径为:
C:\ xampp \ htdocs \ laravelproject \ app \ Http \ Controllers
上面的屏幕显示PostController文件已成功创建。
下面给出了PostController.php文件的默认代码:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PostController 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\Reques $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)
{
//
}
}
上面的代码包含用于对资源执行各种操作的功能, 例如:
create():用于创建新资源。
store():用于存储指定的资源。
update():用于更新存储中的指定资源。
destroy():用于从存储中删除指定的资源。
评论前必须登录!
注册