我大致了解了 laravel 下,在开始一个 Http 程序需要先定义路由。之前的例子中,我们的业务逻辑都是在路由里实现,这对于简单的网站或 web 应用没什么问题,当我们需要扩大规模,程序变得复杂,分层的业务逻辑更为适合。这时候,我们就应该使用控制器。 了解 MVC 的都对控制器的作用有所了解,控制器是实现主要业务逻辑的。在其他框架,控制器一般就是一个类,laravel 也不例外,laravel 的控制其结构并没有什么特殊。
<?php
namespace App\Http\Controllers;
use App\User;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
/**
* @return string
*/
public function index($id)
{
return 'hello world!';
}
}
路由就是网络请求的 url 与 laravel 应用层的逻辑处理地址的对应关系。 通俗的说:路由就是把url的请求优雅的对应到你想要执行的操作方法,路由的作用是简化URL访问地址,并根据定义的路由类型做出正确的解析。
laravel 中的路由 跟路由器很像好比你家里只有一根网线网线上接着 wifi 路由器,多部手机和电脑就可以通过 wifi 上网了,路由器起到了一个分发的作用,大致是这样实现的
我们访问项目的时候最先请求到的是index.php这个入口文件这个 public/index.php 这个时候我们把public/index.php 比作网线,route/web.php 类比成路由器设备,controller控制器比作多部手机设备变很好理解
laravel 的每一个路由是需要手动定义的,Laravel 的控制器非常的干净,与其他类的耦合度相当的低。得益于 laravel 的 IoC 容器,我们很容易实现相当丰富的功能,且不会产生紧密耦合。那么如何才能访问到这个控制器里的逻辑呢?
其中 Route 是一个静态类 ,get是Route类的静态方法,get方法传递了2个参数,第一个是 / 、第二个是一个闭包并且在闭包函数中return返回的东西就是我们请求到的内容,从中可以看出
在注册下路由 Route::get('hello', function () { return view('hello'); }); 我们访问 http://study.laraveltest.com/hello 看到这样的内容就表示成功了;
如果访问 http://study.laraveltest.com/hello 报错可以试一下http://study.laraveltest.com/index.php/hello 加了 index.php 就正常了的话说明是没有成功开启 rewrite ;