Intereting Posts
Пропустить Datetime / Timestamp от PHP до Javascript от echo cakephp 1.3, как использовать Paginator-> sort () для двух столбцов? Триггер не работает – измените таблицу, чтобы добавить новый столбец, прежде чем вставлять в нее Есть ли отдельная библиотека маршрутизации PHP? facebook login заблокировал проблему с фреймом Несколько операторов mysql INSERT в одном запросе php Вызовите хранимую процедуру (базу данных firebird) с php PDO Привяжите выбранные значения к флажку в php 301 перенаправление для старых страниц веб-сайта с помощью codeIgniter PHP буферизация вывода – звучит как плохая идея, не так ли? Переменная привязки для имени столбца в PHP для запроса Postgresql PHP Include () – Верхний и нижний колонтитулы сортировка значения массива без использования встроенных php, таких как sort () и т. д. Не могу заставить Guzzle работать в моем приложении Laravel на Bluemix Перенаправление на предыдущую страницу после входа? PHP

Использование Blade (Laravel) правильно, имея проблемы с заголовком в собственном файле

Я думал, что я разделил заголовок с моих шаблонов клинков и включил бы его верхний и нижний колонтитулы отдельно. Он работал, чтобы поместить мой header.blade.php в layouts / partials /, а затем в следующий шаблон, он расширяет layouts.partials.header. Он работает, но таблицы стилей и скрипты загружаются после содержимого. Как его организовать таким образом, чтобы он работал быстро и в правильном порядке?

header.blade.php

@section('header') <!DOCTYPE html> <html> <head> <title> @section('title') @show </title> <script type="text/javascript" src="{{ asset('bower/jquery/dist/jquery.min.js') }}"></script> <link href="{{ asset('bower/bootstrap/dist/css/bootstrap.min.css') }}" rel="stylesheet"> <script type="text/javascript" src="{{ asset('bower/bootstrap/dist/js/bootstrap.min.js') }}"></script> <script type="text/javascript" src="{{ asset('bower/ckeditor/ckeditor.js') }}"></script> <link href="{{ asset('css/default.css') }}" rel="stylesheet"> </head> <body> @show @section('footer') @section('scripts') @show </body> </html> @show 

master.blade.php

 @extends('layouts.partials.header') @yield('header') <div class="container"> @section('topNav') <div class="row center-block text-center indexWrapper"> <div class="indexNav"> <ul class="text-right"> <li><a href="{{URL::to('people')}}">People</a></li> <li><a href="{{URL::to('bulletin')}}">Bulletin</a></li> <li><a href="{{URL::to('current')}}">Current</a></li> <li><a href="{{URL::to('finished')}}">Finished</a></li> </ul> </div> <div class="indexHeading"> <h1 class="indexH1"> @section('navTitle') @show </h1> </div> <div class="clearfix"></div> </div> @show @yield('content') <div class="center-block login"> @yield('login') </div> </div> @section('scripts') @show </body> </html> в @extends('layouts.partials.header') @yield('header') <div class="container"> @section('topNav') <div class="row center-block text-center indexWrapper"> <div class="indexNav"> <ul class="text-right"> <li><a href="{{URL::to('people')}}">People</a></li> <li><a href="{{URL::to('bulletin')}}">Bulletin</a></li> <li><a href="{{URL::to('current')}}">Current</a></li> <li><a href="{{URL::to('finished')}}">Finished</a></li> </ul> </div> <div class="indexHeading"> <h1 class="indexH1"> @section('navTitle') @show </h1> </div> <div class="clearfix"></div> </div> @show @yield('content') <div class="center-block login"> @yield('login') </div> </div> @section('scripts') @show </body> </html> 

home.blade.php

 @extends('layouts.master') @section('title') @parent ::Home @stop @section('navTitle') @parent Mumble @stop @section('login') @if (Auth::check()) <div class="col-md-12 panel panel-default"> <div class="panel-body text-center"> <h4>Welcome back <em>{{ Auth::user()->name }}</em></h4> </div> </div> <div class="text-center"> <a href="logout" class="btn btn-warning">Logout</a> </div> @else @if($error) <div class="alert alert-danger"> {{ $error }} </div> @endif @if($errors->first('email')) <div class="alert alert-warning"> {{ $errors->first('email') }} </div> @endif @if($errors->first('password')) <div class="alert alert-warning"> {{ $errors->first('password') }} </div> @endif {{ Form::open(array('url' => '')) }} <div class="form-group"> {{Form::label('email', 'Email')}} {{Form::text('email', Input::old('email'),array('class'=>'form-control','placeholder'=>'enter email'))}} </div> <div class="form-group"> {{Form::label('password', 'Password')}} {{Form::password('password',array('class'=>'form-control','placeholder'=>'enter password'))}} </div> <div class="form-group"> {{ Form::checkbox('remember','remember') }} <span style="margin-left:5px;">Remember Me</span> </div> <div class="text-center"> {{ Form::submit('Login',array('class'=>'btn btn-default')) }} </div> {{ Form::close() }} @endif @stop @section('scripts') <script type="text/javascript"> $(document).ready(function(){ //$('.indexWrapper').addClass('homeCenter'); //$('.indexWrapper').css( 'margin-top', '25%' ); }); </script> @stop в @extends('layouts.master') @section('title') @parent ::Home @stop @section('navTitle') @parent Mumble @stop @section('login') @if (Auth::check()) <div class="col-md-12 panel panel-default"> <div class="panel-body text-center"> <h4>Welcome back <em>{{ Auth::user()->name }}</em></h4> </div> </div> <div class="text-center"> <a href="logout" class="btn btn-warning">Logout</a> </div> @else @if($error) <div class="alert alert-danger"> {{ $error }} </div> @endif @if($errors->first('email')) <div class="alert alert-warning"> {{ $errors->first('email') }} </div> @endif @if($errors->first('password')) <div class="alert alert-warning"> {{ $errors->first('password') }} </div> @endif {{ Form::open(array('url' => '')) }} <div class="form-group"> {{Form::label('email', 'Email')}} {{Form::text('email', Input::old('email'),array('class'=>'form-control','placeholder'=>'enter email'))}} </div> <div class="form-group"> {{Form::label('password', 'Password')}} {{Form::password('password',array('class'=>'form-control','placeholder'=>'enter password'))}} </div> <div class="form-group"> {{ Form::checkbox('remember','remember') }} <span style="margin-left:5px;">Remember Me</span> </div> <div class="text-center"> {{ Form::submit('Login',array('class'=>'btn btn-default')) }} </div> {{ Form::close() }} @endif @stop @section('scripts') <script type="text/javascript"> $(document).ready(function(){ //$('.indexWrapper').addClass('homeCenter'); //$('.indexWrapper').css( 'margin-top', '25%' ); }); </script> @stop 

Насколько модульные должны быть в лезвии? Я ломаю его на слишком много штук? Скрипты выполняются медленно, когда они находятся в «нижнем колонтитуле» (определенный в частичном заголовке, я думаю, я должен переименовать это), но я просто хочу знать, есть ли способ сделать это правильно.

Для моих проектов я обычно делаю что-то подобное, что хорошо работает. Объем детализации действительно зависит от ваших собственных требований.

Вместо использования @extends и т. Д. Задайте свои представления как свойства вашего основного макета, чтобы они отображались в вашем контроллере.

master.blade.php

 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Sitename | @yield('title')</title> {{ stylesheet() }} </head> <body class="{{ $authClass }}{{ isset($bodyClass) ? $bodyClass : '' }}" role="document"> {{ $mainNav }} <section id="content"> <section id="main"> @yield('content') </section> </section> <footer></footer> {{ script('jQuery-2-0-3.min.js') }} {{ script('bootstrap.js') }} </body> </html> 

Добавьте это в свой базовый контроллер: он автоматически вызван Laravel, если он существует

 protected function setupLayout() { $this->layout = View::make('layouts.master'); } 

Метод контроллера (виды вложенности)

 public function index() { $this->layout->content = View::make('public.interior.index') ->nest('content', 'components.login') ->nest('sideBar', 'components.sidebars.interiorSidebar1', ['extra' => View::make('components.sidebars.extra.extra1')]); } 

Индексный вид (родительский вид .. @section определен):

 @section('content') <div class="row-fluid col-md-7 col-sm-12 col-md-offset-1 col-sm-offset-0"> {{ $content }} </div> <div class="row-fluid col-md-3 col-sm-12 col-md-offset-1 col-sm-offset-0 pull-right"> {{ $sideBar }} </div> @stop 

Вложенное представление (материал типа компонента. No @section)

 {{ Form::open(['class' => 'form-horizontal', 'role' => 'form']) }} <h2>User Login</h2> <div class="form-group"> {{ Form::label('email', 'Email:', ['class' => 'col-sm-2 control-label']) }} <div class="col-sm-10"> {{ Form::text('email', null, ['id' => 'email','class' => 'form-control']) }} </div> </div> <div class="form-group"> {{ Form::label('password', 'Password:', ['class' => 'col-sm-2 control-label']) }} <div class="col-sm-10"> {{ Form::text('password', null, ['class' => 'form-control']) }} </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> {{ Form::submit('Login', ['class' => 'btn btn-primary']) }} <a href="#" class="btn btn-default">Forgot Password</a> </div> </div> {{ Form::close() }} 

Затем о, так волшебная часть … Просмотреть композиторы: создать файл composers.php и включить его для привязки данных к определенным представлениям

 View::composer(['layouts.master'], function($view){ if(Auth::check()){ $authClass = 'logged-in'; } else { $items = MenuMaker::getPublic(); $authClass = 'logged-out'; $view->with('mainNav', View::make('components.mainNavPublic', ['items' => $items])) ->with('authClass', $authClass); } });