使用 Laravel admin 来构造前端要使用的表单 Form

2019-06-28 15:46:33 阅读:12 编辑

PostController.php

<?PHP

namespace App\Http\Controllers;

use App\Models\Project;
use Encore\Admin\Widgets\Table;
use Illuminate\Http\Request;
use Encore\Admin\Layout\Content;

class PostController extends Controller
{

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index ()
    {//}
    /**
     * Build a form here.
     */
    /*public function form ()
    {$this->text ('name')->rules ('required');
        $this->email ('email')->rules ('email');
        $this->datetime ('created_at');
    }*/
    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create ()
    {$form = new \Encore\Admin\Widgets\Form ();
        \Admin::Bootstrap ();
        $form->text ('title', '名称');
        $form2 = $form->render ();
        $columns = ['cn_name', 'created_at'];
        $headers = ["名称", "创建时间"];
        $rows = Project::paginate (5, $columns);
        $data = $rows->toArray ()["data"];
        $table = new Table ($headers, $data);

        $table2 = $table->render ();
        return view ('post.create', compact ('form2', 'table2', 'rows'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request $request
     * @return \Illuminate\Http\Response
     */
    public function store (Request $request)
    {//}

    /**
     * Display the specified resource.
     *
     * @param  int $id
     * @return \Illuminate\Http\Response
     */
    public function show ($id)
    {//}

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int $id
     * @return \Illuminate\Http\Response
     */
    public function edit ($id)
    {//}

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request $request
     * @param  int $id
     * @return \Illuminate\Http\Response
     */
    public function update (Request $request, $id)
    {//}

    /**
     * Remove the specified resource from storage.
     *
     * @param  int $id
     * @return \Illuminate\Http\Response
     */
    public function destroy ($id)
    {//}
}
views/post/create.blade.php
@extends ('master')

@section ('content')
    {!! $form2 !!}
    {!! $table2 !!}
    {!! $rows->links () !!}
@endsection
views/master.blade.php
<!doctype HTML>
<HTML lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Document</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/NPM/Bootstrap@3.3.7/dist/CSS/bootstrap.min.css">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/CSS/font-awesome.min.css">

</head>
<body>
@yield ('content')
<script src="https://cdn.bootcss.com/jQuery/3.4.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/NPM/Bootstrap@3.3.7/dist/JS/bootstrap.min.js"></script>
</body>
</HTML>

注意事项

1.css 与 JS 需自己加载

  1. 是否需要这么大的包来构建前端,可以把 encore/admin 的 form 独立成包