Php 如何通过控制器渲染视图模板

Php 如何通过控制器渲染视图模板,php,laravel,Php,Laravel,我想重用相同的returnview::make('pages.home')我的用户控制器的模板视图,但我不确定如何将视图连接到该控制器 我假设我需要在控制器的索引中放入一些内容,但我不确定是什么,因为这是我第一次使用Laravel 这是我目前的代码: Routes.php <?php Route::get('/home', function () { return View::make('pages.home'); }); Route::get('/', 'UserControll

我想重用相同的
returnview::make('pages.home')我的
用户控制器的模板视图
,但我不确定如何将视图连接到该控制器

我假设我需要在控制器的
索引中放入一些内容,但我不确定是什么,因为这是我第一次使用Laravel

这是我目前的代码:

Routes.php

<?php

Route::get('/home', function () {
  return View::make('pages.home');
});

Route::get('/', 'UserController@index');
Route::get('user/{id}', 'UserController@show');

Route::get('/foo', function () {
    return 'taobao';
});
@include('pages.home')
你可以试试这个

public function index()
{
  $this->oauth();
  $user = ['name' => 'James'];
  return view('user', compact('user'));
}
现在,您可以在用户视图中调用
$user
。 示例(使用刀片):
{{$user['name']}}
,输出将是
James

,您可以试试这个

public function index()
{
  $this->oauth();
  $user = ['name' => 'James'];
  return view('user', compact('user'));
}
现在,您可以在用户视图中调用
$user

示例(使用刀片):
{{$user['name']}
,输出将是
James

,您不需要将视图连接到Laravel中的控制器。您只需要将视图放置到特定位置(默认位置或预期位置)

创建视图并存储在视图目录中后,可以在任何控制器内调用它。MVC中视图和控制器之间没有严格的连接

您只需要返回
returnview::make('pages.home')从您想要的任何控制器操作,并重复使用它的次数。或者,您可以使用helper代替
returnview('pages.home')


希望这就是你所寻求的

您不需要将视图连接到Laravel中的控制器。您只需要将视图放置到特定位置(默认位置或预期位置)

创建视图并存储在视图目录中后,可以在任何控制器内调用它。MVC中视图和控制器之间没有严格的连接

您只需要返回
returnview::make('pages.home')从您想要的任何控制器操作,并重复使用它的次数。或者,您可以使用helper代替
returnview('pages.home')


希望这就是你所寻求的

您不需要为控制器的
index()
方法指定任何内容。把一个控制者想象成一个能控制他的大脑。。“控制”将要发生的事情,或者是对数据库的长查询,计算一些操作,返回一个视图,或者是所有操作的组合

在上面的代码中,
Route::get('/','UserController@index');
实际上是将
/
的“地址”或路由绑定到
用户控制器的
方法
索引()

关于您所要求的内容,您需要拆分
页面。home
视图,以便它可以重复使用。我建议您阅读文档

简而言之,您可以拥有以下页面,名为
base.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Page</title>

    <!-- Bootstrap includes -->
    <!-- JS Includes -->
</head>
<body>
    <nav>
        <ul>
            <li><a href="#">Link 1</a></li>
            <li><a href="#">Link 2</a></li>
        </ul>
    </nav>

    <div class="content">
        @yield('content')
    </div>
</body>
</html>
@extends('layouts.base')

@section('content')

    <div> Hello Users!</div>    

@endsection
@extends('layouts.base')

@section('content')

    <div> Hello Admins!</div>    

@endsection
MyController extends Controller{

    ...

    public function index()
    {
        // Fancy stuff you might wanna do...

        // Note this will pull the view from within the layout folder
        return view('users');
    }

}
admins.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Page</title>

    <!-- Bootstrap includes -->
    <!-- JS Includes -->
</head>
<body>
    <nav>
        <ul>
            <li><a href="#">Link 1</a></li>
            <li><a href="#">Link 2</a></li>
        </ul>
    </nav>

    <div class="content">
        @yield('content')
    </div>
</body>
</html>
@extends('layouts.base')

@section('content')

    <div> Hello Users!</div>    

@endsection
@extends('layouts.base')

@section('content')

    <div> Hello Admins!</div>    

@endsection
MyController extends Controller{

    ...

    public function index()
    {
        // Fancy stuff you might wanna do...

        // Note this will pull the view from within the layout folder
        return view('users');
    }

}
当然,您需要有一个与该控制器和该方法配对的路由,在本例中,您需要这样做

我希望这有帮助


干杯

您不需要为控制器的
index()
方法指定任何内容。把一个控制者想象成一个能控制他的大脑。。“控制”将要发生的事情,或者是对数据库的长查询,计算一些操作,返回一个视图,或者是所有操作的组合

在上面的代码中,
Route::get('/','UserController@index');
实际上是将
/
的“地址”或路由绑定到
用户控制器的
方法
索引()

关于您所要求的内容,您需要拆分
页面。home
视图,以便它可以重复使用。我建议您阅读文档

简而言之,您可以拥有以下页面,名为
base.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Page</title>

    <!-- Bootstrap includes -->
    <!-- JS Includes -->
</head>
<body>
    <nav>
        <ul>
            <li><a href="#">Link 1</a></li>
            <li><a href="#">Link 2</a></li>
        </ul>
    </nav>

    <div class="content">
        @yield('content')
    </div>
</body>
</html>
@extends('layouts.base')

@section('content')

    <div> Hello Users!</div>    

@endsection
@extends('layouts.base')

@section('content')

    <div> Hello Admins!</div>    

@endsection
MyController extends Controller{

    ...

    public function index()
    {
        // Fancy stuff you might wanna do...

        // Note this will pull the view from within the layout folder
        return view('users');
    }

}
admins.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Page</title>

    <!-- Bootstrap includes -->
    <!-- JS Includes -->
</head>
<body>
    <nav>
        <ul>
            <li><a href="#">Link 1</a></li>
            <li><a href="#">Link 2</a></li>
        </ul>
    </nav>

    <div class="content">
        @yield('content')
    </div>
</body>
</html>
@extends('layouts.base')

@section('content')

    <div> Hello Users!</div>    

@endsection
@extends('layouts.base')

@section('content')

    <div> Hello Admins!</div>    

@endsection
MyController extends Controller{

    ...

    public function index()
    {
        // Fancy stuff you might wanna do...

        // Note this will pull the view from within the layout folder
        return view('users');
    }

}
当然,您需要有一个与该控制器和该方法配对的路由,在本例中,您需要这样做

我希望这有帮助


干杯

如果需要重用相同的
返回视图::make('pages.home')或用户控制器中的主视图,您可以将其称为

return view('home', ['name' => 'James']);
或者您需要在“用户”视图中包含“主视图”,然后才能执行此操作

@extends('home') or @include('home')

如果需要重用相同的
返回视图::make('pages.home')或用户控制器中的主视图,您可以将其称为

return view('home', ['name' => 'James']);
或者您需要在“用户”视图中包含“主视图”,然后才能执行此操作

@extends('home') or @include('home')

我想你应该试试这个:

在您的
user.blade.php

<?php

Route::get('/home', function () {
  return View::make('pages.home');
});

Route::get('/', 'UserController@index');
Route::get('user/{id}', 'UserController@show');

Route::get('/foo', function () {
    return 'taobao';
});
@include('pages.home')

我想你应该试试这个:

在您的
user.blade.php

<?php

Route::get('/home', function () {
  return View::make('pages.home');
});

Route::get('/', 'UserController@index');
Route::get('user/{id}', 'UserController@show');

Route::get('/foo', function () {
    return 'taobao';
});
@include('pages.home')

不要在这里发现任何错误,你在面对什么?不要在这里发现任何错误,你在面对什么?我完全想得太多了真的必须把它改成家我完全想得太多了真的必须把它改成家