Skip to content

Commit e60bc2e

Browse files
committed
Page resource added
1 parent 09dd61b commit e60bc2e

File tree

17 files changed

+461
-95
lines changed

17 files changed

+461
-95
lines changed
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Admin;
4+
5+
use App\Http\Requests;
6+
use App\Http\Controllers\Controller;
7+
8+
use App\Page;
9+
use Illuminate\Http\Request;
10+
11+
class PagesController extends Controller
12+
{
13+
/**
14+
* Display a listing of the resource.
15+
*
16+
* @return \Illuminate\View\View
17+
*/
18+
public function index(Request $request)
19+
{
20+
$keyword = $request->get('search');
21+
$perPage = 25;
22+
23+
if (!empty($keyword)) {
24+
$pages = Page::where('title', 'LIKE', "%$keyword%")
25+
->orWhere('content', 'LIKE', "%$keyword%")
26+
->latest()->paginate($perPage);
27+
} else {
28+
$pages = Page::latest()->paginate($perPage);
29+
}
30+
31+
return view('admin.pages.index', compact('pages'));
32+
}
33+
34+
/**
35+
* Show the form for creating a new resource.
36+
*
37+
* @return \Illuminate\View\View
38+
*/
39+
public function create()
40+
{
41+
return view('admin.pages.create');
42+
}
43+
44+
/**
45+
* Store a newly created resource in storage.
46+
*
47+
* @param \Illuminate\Http\Request $request
48+
*
49+
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
50+
*/
51+
public function store(Request $request)
52+
{
53+
$this->validate($request, [
54+
'title' => 'required',
55+
'content' => 'required'
56+
]);
57+
$requestData = $request->all();
58+
59+
Page::create($requestData);
60+
61+
return redirect('admin/pages')->with('flash_message', 'Page added!');
62+
}
63+
64+
/**
65+
* Display the specified resource.
66+
*
67+
* @param int $id
68+
*
69+
* @return \Illuminate\View\View
70+
*/
71+
public function show($id)
72+
{
73+
$page = Page::findOrFail($id);
74+
75+
return view('admin.pages.show', compact('page'));
76+
}
77+
78+
/**
79+
* Show the form for editing the specified resource.
80+
*
81+
* @param int $id
82+
*
83+
* @return \Illuminate\View\View
84+
*/
85+
public function edit($id)
86+
{
87+
$page = Page::findOrFail($id);
88+
89+
return view('admin.pages.edit', compact('page'));
90+
}
91+
92+
/**
93+
* Update the specified resource in storage.
94+
*
95+
* @param \Illuminate\Http\Request $request
96+
* @param int $id
97+
*
98+
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
99+
*/
100+
public function update(Request $request, $id)
101+
{
102+
$this->validate($request, [
103+
'title' => 'required',
104+
'content' => 'required'
105+
]);
106+
$requestData = $request->all();
107+
108+
$page = Page::findOrFail($id);
109+
$page->update($requestData);
110+
111+
return redirect('admin/pages')->with('flash_message', 'Page updated!');
112+
}
113+
114+
/**
115+
* Remove the specified resource from storage.
116+
*
117+
* @param int $id
118+
*
119+
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
120+
*/
121+
public function destroy($id)
122+
{
123+
Page::destroy($id);
124+
125+
return redirect('admin/pages')->with('flash_message', 'Page deleted!');
126+
}
127+
}

publish/Model/Page.php

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
namespace App;
4+
5+
use Illuminate\Database\Eloquent\Model;
6+
use Illuminate\Database\Eloquent\SoftDeletes;
7+
8+
class Page extends Model
9+
{
10+
use SoftDeletes;
11+
/**
12+
* The database table used by the model.
13+
*
14+
* @var string
15+
*/
16+
protected $table = 'pages';
17+
18+
/**
19+
* The database primary key value.
20+
*
21+
* @var string
22+
*/
23+
protected $primaryKey = 'id';
24+
25+
/**
26+
* Attributes that should be mass-assignable.
27+
*
28+
* @var array
29+
*/
30+
protected $fillable = ['title', 'content'];
31+
32+
33+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
use Illuminate\Database\Migrations\Migration;
4+
use Illuminate\Database\Schema\Blueprint;
5+
6+
class CreatePagesTable extends Migration
7+
{
8+
/**
9+
* Run the migrations.
10+
*
11+
* @return void
12+
*/
13+
public function up()
14+
{
15+
Schema::create('pages', function (Blueprint $table) {
16+
$table->increments('id');
17+
$table->timestamps();
18+
$table->softDeletes();
19+
$table->string('title')->nullable();
20+
$table->text('content')->nullable();
21+
});
22+
}
23+
24+
/**
25+
* Reverse the migrations.
26+
*
27+
* @return void
28+
*/
29+
public function down()
30+
{
31+
Schema::drop('pages');
32+
}
33+
}
Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
<div class="form-group row{{ $errors->has('%1$s') ? 'has-error' : ''}}">
2-
<label for="%1$s" class="col-md-2 control-label">{{ %2$s }}</label>
3-
<div class="col-md-10">
4-
%3$s
5-
{!! $errors->first('%1$s', '<p class="help-block">:message</p>') !!}
6-
</div>
7-
</div>
1+
<div class="form-group{{ $errors->has('%1$s') ? 'has-error' : ''}}">
2+
<label for="%1$s" class="control-label">{{ %2$s }}</label>
3+
%3$s
4+
{!! $errors->first('%1$s', '<p class="help-block">:message</p>') !!}
5+
</div>
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
%%formFieldsHtml%%
22

3-
<div class="form-group row">
4-
<div class="col-md-offset-2 col-md-10">
5-
<input class="btn btn-primary" type="submit" value="{{ $formMode === 'edit' ? 'Update' : 'Create' }}">
6-
</div>
3+
<div class="form-group">
4+
<input class="btn btn-primary" type="submit" value="{{ $formMode === 'edit' ? 'Update' : 'Create' }}">
75
</div>
Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
<div class="form-group row{{ $errors->has('%1$s') ? 'has-error' : ''}}">
2-
{!! Form::label('%1$s', %2$s, ['class' => 'col-md-2 control-label']) !!}
3-
<div class="col-md-10">
4-
%3$s
5-
{!! $errors->first('%1$s', '<p class="help-block">:message</p>') !!}
6-
</div>
7-
</div>
1+
<div class="form-group{{ $errors->has('%1$s') ? 'has-error' : ''}}">
2+
{!! Form::label('%1$s', %2$s, ['class' => 'control-label']) !!}
3+
%3$s
4+
{!! $errors->first('%1$s', '<p class="help-block">:message</p>') !!}
5+
</div>
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
%%formFieldsHtml%%
22

3-
<div class="form-group row">
4-
<div class="col-md-offset-2 col-md-10">
5-
{!! Form::submit($formMode === 'edit' ? 'Update' : 'Create', ['class' => 'btn btn-primary']) !!}
6-
</div>
3+
<div class="form-group">
4+
{!! Form::submit($formMode === 'edit' ? 'Update' : 'Create', ['class' => 'btn btn-primary']) !!}
75
</div>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"menus":[{"section":"Resources","items":[{"title":"Users","url":"\/admin\/users"},{"title":"Roles","url":"\/admin\/roles"},{"title":"Permissions","url":"\/admin\/permissions"},{"title":"Activity Logs","url":"\/admin\/activitylogs"}]},{"section":"Tools","items":[{"title":"Generator","url":"\/admin\/generator"}]}]}
1+
{"menus":[{"section":"Resources","items":[{"title":"Users","url":"\/admin\/users"},{"title":"Roles","url":"\/admin\/roles"},{"title":"Permissions","url":"\/admin\/permissions"},{"title":"Pages","url":"\/admin\/pages"},{"title":"Activity Logs","url":"\/admin\/activitylogs"}]},{"section":"Tools","items":[{"title":"Generator","url":"\/admin\/generator"}]}]}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
@extends('layouts.backend')
2+
3+
@section('content')
4+
<div class="container">
5+
<div class="row">
6+
@include('admin.sidebar')
7+
8+
<div class="col-md-9">
9+
<div class="card">
10+
<div class="card-header">Create New Page</div>
11+
<div class="card-body">
12+
<a href="{{ url('/admin/pages') }}" title="Back"><button class="btn btn-warning btn-sm"><i class="fa fa-arrow-left" aria-hidden="true"></i> Back</button></a>
13+
<br />
14+
<br />
15+
16+
@if ($errors->any())
17+
<ul class="alert alert-danger">
18+
@foreach ($errors->all() as $error)
19+
<li>{{ $error }}</li>
20+
@endforeach
21+
</ul>
22+
@endif
23+
24+
{!! Form::open(['url' => '/admin/pages', 'class' => 'form-horizontal', 'files' => true]) !!}
25+
26+
@include ('admin.pages.form', ['formMode' => 'create'])
27+
28+
{!! Form::close() !!}
29+
30+
</div>
31+
</div>
32+
</div>
33+
</div>
34+
</div>
35+
@endsection
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
@extends('layouts.backend')
2+
3+
@section('content')
4+
<div class="container">
5+
<div class="row">
6+
@include('admin.sidebar')
7+
8+
<div class="col-md-9">
9+
<div class="card">
10+
<div class="card-header">Edit Page #{{ $page->id }}</div>
11+
<div class="card-body">
12+
<a href="{{ url('/admin/pages') }}" title="Back"><button class="btn btn-warning btn-sm"><i class="fa fa-arrow-left" aria-hidden="true"></i> Back</button></a>
13+
<br />
14+
<br />
15+
16+
@if ($errors->any())
17+
<ul class="alert alert-danger">
18+
@foreach ($errors->all() as $error)
19+
<li>{{ $error }}</li>
20+
@endforeach
21+
</ul>
22+
@endif
23+
24+
{!! Form::model($page, [
25+
'method' => 'PATCH',
26+
'url' => ['/admin/pages', $page->id],
27+
'class' => 'form-horizontal',
28+
'files' => true
29+
]) !!}
30+
31+
@include ('admin.pages.form', ['formMode' => 'edit'])
32+
33+
{!! Form::close() !!}
34+
35+
</div>
36+
</div>
37+
</div>
38+
</div>
39+
</div>
40+
@endsection

0 commit comments

Comments
 (0)