laravel 使用 Laravel Administrator 插件后台,详细的安装方法

昨天开始研究 laravel ,由于自己 熟悉 yii 框架,所以看着文档也觉得不是很难,

于是,今天想着自己写点东西吧,写啥呢 ?

研究 thinkphp 的时候,写的是博客系统

研究 yii 的时候,还是写的 博客系统

好吧,那我还是写个博客系统吧,

说干就干,由于在一篇文章中,看到 laravel 有一个插件,是后台插件,意味着我不用写 html css js 这些烦人的东西,于是决定使用他的插件,结果掉进了大坑!
https://github.com/FrozenNode/ ... rator 官方的 git ,上面也有安装步骤

虽然有,但我还是说下吧

composer.json 添加
"require": {
    "laravel/framework": "4.2.*",
    "frozennode/administrator": "dev-master"
},

composer update

等待更新完成,往app/config/app.php 里面的providers数组里面添加一条
'Frozennode\Administrator\AdministratorServiceProvider',

最后命令行运行
php artisan config:publish frozennode/administrator 
php artisan asset:publish frozennode/administrator

然后,官方安装教程到此结束,你以为这就完了吗?错,这才刚刚开始呢!跟着我继续往下走吧!

/bootstrap/start.php 修改
$env = $app->detectEnvironment(array(

'local' => array('homestead','myComputer'),

));

到这一步后,去app/config/database.php 里面修改你的数据库配置吧

修改完成以后,我们又需要一个东西,它就是:way/generators

在 composer.json 添加
"require-dev": {
    "way/generators": "~2.0"
},

记住是 require-dev 哦,因为这个是我们在开发时使用的

执行 composer update

等待更新完成,往app/config/app.php 里面的providers数组里面添加一条
'Way\Generators\GeneratorsServiceProvider'

然后,命令行执行
php artisan generate:migration create_users_table --fields="username:string, email:string, password:string"
php artisan generate:seed user

执行完毕后,修改你的 app/database/seeds/UserTableSeeder.php 为以下内容
<?php

class UserTableSeeder extends Seeder {

public function run()
{
  User::create([
      'username'   => 'admin',
      'email'      => 'admin@mysite.com',
      'password'   => Hash::make('thepass'),
      'created_at' => new DateTime(),
      'updated_at' => new DateTime()
  ]);
}

}

默认是 随机生成的,我们不用随机生成,就生成一条,记得改你的 密码哦

修改完成后,在你的 app/database/seeds/DatabaseSeeder.php 里面新增
$this->call('UserTableSeeder');

其实它原先是有的,只不过注释掉了

命令行执行
php artisan migrate
php artisan db:seed

然后看你的数据库,是不是有一个 users 表,里面是不是有条数据呀,如果有的话,代表你上面没有错误,没有的话,注意看看是不是拉下哪一步了

然后,我们要生成 控制器
php artisan generate:controller LoginController

同时,在你的路由里面添加一条
Route::controller('/login', 'LoginController');

好了,我们去修改 刚刚生成的LoginController 控制器,修改为 以下内容
<?php

class LoginController extends \BaseController {


public function getIndex()
{
  return View::make('login.index');
}

public function postIndex()
{
  $username = Input::get('username');
  $password = Input::get('password');

  if (Auth::attempt(['username' => $username, 'password' => $password]))
  {
      return Redirect::intended('/admin');
  }

  return Redirect::back()
      ->withInput()
      ->withErrors('Username or Password are incorrect.');
}
}

以上代码看不懂的同学,laravel 大叔叫你去看文档

我们生成视图,首先生成 layouts 下的公共视图 命令行运行
php artisan generate:view layouts.master

它会在 app/views/ 下生成layouts 文件下,里面有一个 master.blade.php 文件,我们修改里面内容为
<!DOCTYPE html>
<html lang='en'>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
  <meta charset="utf-8">
  <meta name='viewport' content='width=device-width, initial-scale=1'>

  <title>@yield('title')</title> 
  <link rel='stylesheet' href='//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css'>
  <style>
      body {
          margin-top: 10px;
      }
  </style>
</head>
<body>
  <div class='container-fluid'>
      <div class='row'>
          @yield('content')
      </div>
  </div>
</body>
</html>

我们在生成我们登陆的视图文件 命令运行
php artisan generate:view login.index

我们修改里面的内容
@extends('layouts.master')

@section('title') Login @stop

@section('content')
<div class="col-md-4 col-md-offset-4">
    <div class="panel panel-default">
            <div class="panel-heading">
                    <h3 class="panel-title">Please sign in</h3>
            </div>
            <div class="panel-body">
                    @if ($errors->has())
                            @foreach ($errors->all() as $error)
                                    <div class='alert-danger alert'>{{ $error }}</div>
                            @endforeach
                    @endif

                    {{ Form::open(['role' => 'form']) }}
                    <fieldset>
                            <div class="form-group">
                                    {{ Form::text('username', null, ['placeholder' => 'Username', 'class' => 'form-control']) }}
                            </div>
                            <div class="form-group">
                                    {{ Form::password('password', ['placeholder' => 'Password', 'class' => 'form-control']) }}
                            </div>
                                    {{ Form::submit('Login', ['class' => 'btn btn-primary']) }}
                    </fieldset>
                    {{ Form::close() }}
            </div>
    </div>
</div>
@stop

好了,我们在回到我们的 Laravel Administrator 上来,

我们去 app/config 配置文件夹下,建立一个文件夹
cd app/config

mkdir administrator

cd administrator

mkdir settings

我习惯命令行,你们也可以去文件夹里面 右键建立,一样的

建立完成后,我们修改 Laravel Administrator 的配置

修改 app/config/packages/frozennode/administrator/administrator.php
'menu' => array('users'),

'home_page' => 'users',  

'login_path' => 'login',

修改完成后,我们在 app/config/administrator 里面建立 一个 users.php ,写入以下内容
<?php

/**
* Users model config
*/

return array(

  'title' => 'Users',
  'single' => 'user',
  'model' => 'User',

  'columns' => array(
      'email' => array(
          'title' => 'Email',
      ),
      'username' => array(
          'title' => 'First Name',
      ),
  ),

  'edit_fields' => array(
      'email' => array(
          'title' => 'Email',
          'type' => 'text',
      ),
      'username' => array(
          'title' => 'Username',
          'type' => 'text',
      ),
      'password' => array(
          'title' => 'Password',
          'type' => 'password',
      ),
  ),
);

好了,这个时候,输入你的 域名/admin 登陆后台体验去吧!!

其实,我也是昨天才接触 laravel 的,加入 QQ 群,一起学习吧:
188128412 

原文出自: 袁超博客

3 个评论

偶左眼跳

偶左眼跳

楼主真好,自己摸索后还发个帖子总结一下,供后来人学习。。
2015-01-10 23:26
龙权

龙权

mark
2015-09-01 14:27
gamehhh

gamehhh

"frozennode/administrator": "dev-master" 是适合laravel 5 的版本,4.2的话应该是"frozennode/administrator": "4.*"
2015-11-16 16:11

要回复文章请先登录注册