我正在学习Laravel
,而对于我的第一个项目,我想创建我的投资组合。但是,我要做的第一项任务是让我困惑。
所以我创建了我的模板,layout.blade.php
和home.blade.php
。这对我有意义,但现在我如何告诉Laravel,或者我如何route
到home.blade.php
?
我正在寻找解释,而不仅仅是代码。我正在努力学习。
答案 0 :(得分:6)
实际上,view
应用程序中的MVC
只是应用程序的一部分,它仅用于表示逻辑,UI
并且不会直接调用/加载视图应用程序的另一部分(控制器/功能)的帮助。基本上,您向路线发出请求,并且该路线将控制权传递给controller/function
,然后从那里显示/加载view
。 So
它不是教程网站,也不可能在这里解释MVC
,你应该阅读它,对于Laravel
,它是了解它的文档基础知识的最佳位置,无论如何,用例子解释。
如果是Laravel
,您应在controller/class
文件中创建anonymous function
或apps/routes.php
,然后从其中一个文件中显示view
。请一步一步地按照给定的说明进行操作。
要为Home
控制器创建route,您应该在app/routes.php
// This will call "showWelcome" method in your "HomeController" class
Route::any('/', array( 'as' => 'home', 'uses' => 'HomeController@showWelcome' ));
然后创建HomeController
控制器/类(在您的控制器文件夹中创建一个文件,并使用HomeController.php
作为其名称保存此文件),然后粘贴下面给出的代码
class HomeController extends BaseController {
public function showWelcome()
{
// whatever you do, do it here
// prepare some data to use in the view (optional)
$data['page_title'] = 'Home Page';
// finally load the view
return View::make('home', $data);
}
}
如果{{ $title }}
中有home.blade.php
,则会打印Home Page
。因此,要使用视图,您需要controller
或anonymous function
并从控制器/函数加载视图。
此外,您可以使用匿名函数代替controller/class
来直接显示您的路线view
,即
Route::any('/', function(){
// return View::make('home');
// or this
$data['page_title'] = 'Home Page'; // (optional)
return View::make('home', $data);
});
使用这种方法,每当您向主页发出请求时,Laravel
都会调用/作为路由callback
中给出的匿名函数,并从那里显示您的视图。
另外,请记住,您在home.blade.php
文件
@extends('layouts.layout')
看起来很混乱,您可以将主要布局(layout.blade.php
)重命名为master.blade.php
,然后在home.blade.php
中使用以下内容
@extends('layouts.master')
您应该正确阅读Laravel's documentation,(查看templates以了解blade
模板)并阅读一些MVC examples,这可能会帮助您理解SO的基础知识{1}}框架(您可以通过Google搜索找到更多内容)以及{{3}}上关于MVC
的一些好帖子。
答案 1 :(得分:1)
您需要使用路径文件和控制器
在Controller文件中创建所需的功能并创建模板文件,例如
class UserController extends BaseController {
/**
* Show the profile for the given user.
*/
public function showProfile($id)
{
$user = User::find($id);
return View::make('user.profile', array('user' => $user));
}
}
您需要创建视图文件视图/ user / profile.blade.php
View::make('user.profile', array('user' => $user)) == views/user/profile.blade.php
您应该阅读http://laravel.com/docs/responses以及此http://laravel.com/docs/quick#creating-a-view