Laravel5 での AdminLTE の使用*
AdminLTE は、HTML と CSS テンプレートのみから構築された優れたバックエンドです。この記事では、 AdminLTE と Laravel をエレガントに統合する方法について説明します。Bower を使用して、AdminLTE をタイムリーに更新および管理できます。
よくわからない場合は、公式 Web サイトにアクセスしてドキュメントのリンクを参照してください
ここではコマンドラインを使用できます直接
<code> composer create-project laravel/laravel myapp --prefer-dist</code>
このコマンドを使用して、myapp という名前の新しい Laravel プロジェクトを作成します。成功すると、下の図が表示されます。
myapp/public フォルダーに移動します
<code> cd myapp/public</code>
このフォルダーで次のコマンドを実行します
<code> bower install admin-lte </code>
完了すると、追加の bower_componets ファイル フォルダーが見つかります。このフォルダーには AdminLTE が表示されます
Laravel は、ここで優れたテンプレート エンジン Blade を使用しています。Blade を最大限に活用するには、以下を適用する必要があります。いくつかの一般的な HTML スタート ページを Blade テンプレートに変換します。まず、resources/views
フォルダーにビューを作成し、admin_template.blade.php
という名前を付けてから、このページに対応するビューを作成します。以下のように、
<code> Route::get('admin', function () { return view('admin_template'); }); </code>
を作成しました。次に、bower_components/admin-lte/starter.html
のコンテンツをビュー テンプレートにコピーし、その中の関連リンクを AdminLTE
css の対応するディレクトリと、 js で対応するディレクトリを指定し、localhost:8000/admin
を使用してページの変更を確認します。このとき、ページは次のようになります。 AdminLTE のすべてのリソースを追加して、メイン ビューに最後の仕上げを加えましょう。このテンプレートを
、、
の 3 つのファイルに分割します。これらは sidebar.blade.php
ヘッダー部分です。 、サイド部分、フッター部分の3つの部分を切り出し、3つのファイルに順番に入れます。 header.blade.php
footer.blade.php
最後の仕上げadmin_template.blade.php
テンプレートを個別にパーソナライズしたので、次に示すように、コンテンツを動的にロードできるように最初の
上記のコードでは、メイン コンテンツを含む admin_template.blade.php
を追加し、さまざまなページのページ タイトルを追加して、名前を
に変更しました。これで、このカスタム Blade レイアウトを使用する準備が整いました。
<code>@include('header')<!-- Sidebar -->@include('sidebar')<!-- Content Wrapper. Contains page content --><div class="content-wrapper"> <!-- Content Header (Page header) --> <section class="content-header"> <h1> {{ $page_title or "Page Title" }} <small>{{ $page_description or null }}</small> </h1> <!-- You can dynamically generate breadcrumbs here --> <ol class="breadcrumb"> <li><a href="#"><i class="fa fa-dashboard"></i> Level</a></li> <li class="active">Here</li> </ol> </section> <!-- Main content --> <section class="content"> <!-- Your Page Content Here --> @yield('content') </section><!-- /.content --></div><!-- /.content-wrapper --><!-- Footer -->@include('footer')</code>
contetn
これまでに行ったことを確認するために、簡単なページ dashboard.blade.php
test.blade.php
<code>@extends('dashboard')@section('content')<div class='row'> <div class='col-md-6'> <!-- Box --> <div class="box box-primary"> <div class="box-header with-border"> <h3 class="box-title">Randomly Generated Tasks</h3> <div class="box-tools pull-right"> <button class="btn btn-box-tool" data-widget="collapse" data-toggle="tooltip" title="Collapse"><i class="fa fa-minus"></i></button> <button class="btn btn-box-tool" data-widget="remove" data-toggle="tooltip" title="Remove"><i class="fa fa-times"></i></button> </div> </div> <div class="box-body"> @foreach($tasks as $task) <h5> {{ $task['name'] }} <small class="label label-{{$task['color']}} pull-right">{{$task['progress']}}%</small> </h5> <div class="progress progress-xxs"> <div class="progress-bar progress-bar-{{$task['color']}}" style="max-width:90%"></div> </div> @endforeach </div><!-- /.box-body --> <div class="box-footer"> <form action='#'> <input type='text' placeholder='New task' class='form-control input-sm' /> </form> </div><!-- /.box-footer--> </div><!-- /.box --> </div><!-- /.col --> <div class='col-md-6'> <!-- Box --> <div class="box box-primary"> <div class="box-header with-border"> <h3 class="box-title">Second Box</h3> <div class="box-tools pull-right"> <button class="btn btn-box-tool" data-widget="collapse" data-toggle="tooltip" title="Collapse"><i class="fa fa-minus"></i></button> <button class="btn btn-box-tool" data-widget="remove" data-toggle="tooltip" title="Remove"><i class="fa fa-times"></i></button> </div> </div> <div class="box-body"> A separate section to add any kind of widget. Feel free to explore all of AdminLTE widgets by visiting the demo page on <a href="https://almsaeedstudio.com">Almsaeed Studio</a>. </div><!-- /.box-body --> </div><!-- /.box --> </div><!-- /.col --></div><!-- /.row -->@endsection</code>
TestController.php
<code> php artisan make:controller TestController --plain</code>
<code> <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; class TestController extends Controller { public function index() { $data['tasks'] = [ [ 'name' => 'Design New Dashboard', 'progress' => '87', 'color' => 'danger' ], [ 'name' => 'Create Home Page', 'progress' => '76', 'color' => 'warning' ], [ 'name' => 'Some Other Task', 'progress' => '32', 'color' => 'success' ], [ 'name' => 'Start Building Website', 'progress' => '56', 'color' => 'info' ], [ 'name' => 'Develop an Awesome Algorithm', 'progress' => '10', 'color' => 'success' ] ]; return view('test')->with($data); } } </code>
<code> Route::get('test', '[email protected]');</code>