ホームページ > バックエンド開発 > PHPチュートリアル > Laravel 入門: MVC フレームワーク

Laravel 入門: MVC フレームワーク

WBOY
リリース: 2016-06-20 12:32:26
オリジナル
1069 人が閲覧しました

本文基于Laravel 4.2编写。1. 路由Hello World在app/routes.php里面添加下面代码,然后在浏览器里访问http://<laravel host prefix>/helloworld可以见到结果。  ```Route::get('/helloworld', function() {  return '<html><body>hello world</body></html>';});```2.  视图(View)理论上可以把所有代码都写在app/routes.php里面,但是这会令代码难以维护。于是,我们可以把具体的页面内容搬到视图里,让路由文件简短一些。app/routes.php  ```Route::get('/helloworld', function() {  return View::make('helloworld');});app/views/helloworld.php  <html>  <body>    hello world  </body></html>```3. 控制器(Controller) 我们写的是动态网页,页面里有变量,变量通过Controller传入View。app/routes.php(这次我们的路由要先指向Controller,然后再由Controller返回View内容)  Route::get('/helloworld', 'HelloworldController@say');app/controllers/HelloworldController.php  ```<?phpclass HelloworldController extends BaseController {  public function say() {    $action = 'hello';    $name = 'kitty';    return View::make('hello.world', compact('action', 'name')); // hello.world表示hello目录里的world.php文件; 我们传入两个变量$action和$name  }}```app/views/hello/world.php(这次我们放在一个子目录里,避免views目录文件太多)  ```<html>  <body>    {{$action}} {{$name}}  </body></html>```页面将显示“hello kitty”4. 模型(Model)随着业务逻辑的复杂,Controller文件会变长不好维护,那么我们可以把和数据库查询相关的逻辑分到模型层里,甚至可以安排一个擅长数据库表设计和写SQL的人专门负责这一层。app/routes.php  ```Route::get('/helloworld', 'HelloworldController@say');app/controllers/HelloworldController.php  <?phpclass HelloworldController extends BaseController {  public function say() {    $name = 'kitty';    $contacts = Contact::getContacts();    return View::make('hello.world', compact('name', 'contacts'));  }}```app/models/Contact.php``` <?php// 假设有个表contacts(uid, name, phone)class Contact extends Eloquent {  public $timestamps = false;  protected $primaryKey  = 'uid';  static public function createContact($uid, $name, $phone) { // 这个方法只是演示Model可能有些什么内容,并没有实际调用。    $item = new Contact;    $item->uid = $uid;    $item->name = $name;    $item->phone = $phone;    $item->save();    return $item;  }  // 假设有两行内容:(1, ‘kitty’, ‘800888’), (2, 'dingdong', '900999')  static public function getContacts {    return DB::table('contacts')->get();  }}```app/views/hello/world.blade.php(由于需要使用循环等超越HTML语法的功能,我们需要使用blade模板语言,文件名里需要添加blade部分)  ```<html>  <body>@foreach ($contacts as $contact)    {{ $contact->name }}’s number is {{ $contact->phone }},@endforeach  </body></html>```页面将显示“kitty's number is 800888, dingdong's number is 900999,”模板语言更多语法可参考:https://laravel.com/docs/4.2/templates至此,MVC(Model-View-Controller)的框架进化完成。
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート