Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 12 additions & 46 deletions app/Http/Controllers/PostsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,34 +7,18 @@

class PostsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$posts = Post::all();

return view('/posts.index', compact('posts'));
}

/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('/posts.create');
}

/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$request->validate([
Expand All @@ -53,47 +37,29 @@ public function store(Request $request)
return redirect('/');
}

/**
* Display the specified resource.
*
* @param Post $post
* @return void
*/
public function show(Post $post)
{
return view('/posts.show', compact('post'));
}

/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
public function edit(Post $post)
{
//
return view('/posts.edit', compact('post'));
}

/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
public function update(Request $request, Post $post)
{
//
$values = $request->validate([
'name' => 'required|min:5|max:100',
'description' => 'required|max:255',
'text' => 'required'
]);

$post->update($values);

return back();
}

/**
* Remove the specified resource from storage.
*
* @param Post $post
* @return void
* @throws \Exception
*/
public function destroy(Post $post)
{
$post->delete();
Expand Down
104 changes: 103 additions & 1 deletion resources/views/posts/edit.blade.php
Original file line number Diff line number Diff line change
@@ -1 +1,103 @@
<?php
@extends('layouts.app')

@section('header')
@include('layouts.base.header')
@endsection

@section('content')
<main class="d-flex py-4" style="min-height: 88vh">
<div class="container">
<section class="post-edit mb-2">
<h2 class="post-edit__header mb-4"><strong>Edit post #{{ $post->id }}</strong></h2>

<form class="post-edit__form form d-flex flex-column needs-validation" method="post" action="/posts/{{ $post->id }}" novalidate>
@csrf
@method('patch')

<div class="form__fields row d-flex flex-column">
<div class="form__field col-6 mb-3">
<label for="form-name">Post Name</label>
<input type="text"
class="form-control @error('name') is-invalid @enderror"
id="form-name"
name="name"
value="{{ $post->name }}"
required=""
>

<div class="invalid-feedback">
Post Name is required.
</div>

@error('name')
<div class="alert alert-danger">
{{ $message }}
</div>
@enderror
</div>

<div class="form__field col-6 mb-3">
<label for="form-description">Description</label>
<input type="text"
class="form-control @error('description') is-invalid @enderror"
id="form-description"
name="description"
value="{{ $post->description }}"
required=""
>

<div class="invalid-feedback">
Post Description is required.
</div>

@error('description')
<div class="alert alert-danger">
{{ $message }}
</div>
@enderror
</div>

<div class="form__field d-flex flex-column col-12 mb-3">
<label for="form-text">Text</label>
<textarea name="text"
class="form-control @error('text') is-invalid @enderror"
id="form-text"
cols="30"
rows="10"
placeholder="Post content here"
required="">{{ $post->text }}</textarea>

<div class="invalid-feedback">
Post Description is required.
</div>

@error('text')
<div class="alert alert-danger">
{{ $message }}
</div>
@enderror
</div>

<div class="form__field form-check mb-2">
<input class="form__checkbox"
id="form-checkbox"
type="checkbox"
name="published"
@if ($post->published) checked @endif
>
<label class="form-check-label" for="form-checkbox">
Published
</label>
</div>
</div>

<button class="btn btn-primary align-self-end" type="submit" style="width: 150px">Save changes</button>
</form>
</section>
</div>
</main>
@endsection

@section('footer')
@include('layouts.base.footer')
@endsection
13 changes: 8 additions & 5 deletions resources/views/posts/show.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,19 @@
@include('layouts.base.header')
@endsection


@section('content')
<div class="container">
<section class="post-show my-3">
<h2 class="post-show header text-primary"><strong>Info Post #{{ $post->id }}</strong></h2>
<h2 class="post-show header text-primary"><strong>Post #{{ $post->id }}</strong></h2>

<div class="post-show__content post row d-flex flex-column">
<div class="post__intro d-flex w-100 border no-gutters rounded mb-4 shadow-sm position-relative">
<div class="post__heading col-6 p-3 d-flex flex-column justify-content-top position-static">
<h3 class="post__name mb-2">Name : {{ $post->name }}</h3>
<h4 class="post__name mb-2">Name : {{ $post->name }}</h4>

<div class="post__created-at mb-2 text-muted">Created at: {{ $post->created_at->toFormattedDateString() }}</div>
<div class="post__created-at mb-2 text-muted">Created at :
{{ $post->created_at->toFormattedDateString() }}
</div>

<div class="post__description">
<strong>Post description</strong>
Expand All @@ -33,11 +34,13 @@
</div>
</div>

<div class="post__text">
<div class="post__text mb-3">
<h3 class="post__heading ml-3">Post content</h3>

<p class="card-text mb-auto p-3 text-justify border rounded shadow-sm" style="min-height: 42vh"> {{ $post->text }} </p>
</div>

<a href="/posts/{{ $post->id }}/edit" class="btn btn-primary align-self-end" style="width: 100px">Edit post</a>
</div>
</section>
</div>
Expand Down
4 changes: 2 additions & 2 deletions routes/web.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
Route::get('/posts/create', 'PostsController@create')->name('post-create');
Route::get('/posts/{post}', 'PostsController@show')->name('post-show');
Route::post('/posts/', 'PostsController@store');
Route::get('/posts/{id}/edit', 'PostsController@edit');
//Route::patch('/posts/{post}', 'PostsController@destroy');
Route::get('/posts/{post}/edit', 'PostsController@edit');
Route::patch('/posts/{post}', 'PostsController@update');
Route::delete('/posts/{post}', 'PostsController@destroy');


Expand Down