Skip to content

Commit 68a339d

Browse files
committed
add slug validation
1 parent 0a12086 commit 68a339d

File tree

4 files changed

+10
-8
lines changed

4 files changed

+10
-8
lines changed

app/Http/Controllers/PostController.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public function save(PostRequest $request)
5252
$post->metaTitle = $data['metaTitle'];
5353
$post->body = $data['body'];
5454
$post->metaDescription = $data['metaDescription'];
55-
$post->slug = $data['urlSlug'] ?? Str::slug($post->title);
55+
$post->slug = $data['slug'] ?? Str::slug($post->title);
5656
$post->user_id = $request->user()->id;
5757

5858
if ($request->has('draft')) {
@@ -96,7 +96,7 @@ public function update(PostRequest $request, string $slug)
9696
$post->metaTitle = $request->get('metaTitle');
9797
$post->body = $request->get('body');
9898
$post->metaDescription = $request->get('metaDescription');
99-
$post->slug = $request->get('urlSlug') ?? Str::slug($post->title);
99+
$post->slug = $request->get('slug') ?? Str::slug($post->title);
100100
$post->user_id = $request->user()->id;
101101

102102
$message = 'Post updated!';

app/Http/Requests/PostRequest.php

+4-2
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,18 @@ public function authorize()
1717
public function rules()
1818
{
1919
return [
20-
'title' => 'required|unique:posts|regex:/^[A-Za-z0-9 ]+$/i|max:255',
20+
'title' => 'required|max:255',
2121
'body' => 'required',
22+
'slug' => 'unique:posts|regex:/^[A-Za-z0-9 ]+$/i'
2223
];
2324
}
2425

2526
public function messages()
2627
{
2728
return [
2829
'title.required' => 'Please add a title',
29-
'body.required' => 'Please add some content to the post'
30+
'body.required' => 'Please add some content to the post',
31+
'slug.unique' => 'The URL slug has already been used'
3032
];
3133
}
3234
}

resources/views/blog/posts/create.blade.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@
3636
<textarea name="metaDescription" class="form-control">{{ old('metaDescription') }}</textarea>
3737
</div>
3838
<div class="form-group">
39-
<label for="urlSlug">URL Slug (optional)</label>
39+
<label for="slug">URL Slug (optional)</label>
4040
<small>If not specified one will be created from the title</small>
41-
<input type="text" name="urlSlug" class="form-control" value="{{ old('urlSlug') }}" />
41+
<input type="text" name="slug" class="form-control" value="{{ old('slug') }}" />
4242
</div>
4343
<input type="submit" name="publish" class="btn btn-success" value="Publish" />
4444
<input type="submit" name="draft" class="btn btn-default" value="Save Draft" />

resources/views/blog/posts/edit.blade.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
<textarea name="metaDescription" class="form-control">{{ $post->metaDescription }}</textarea>
2929
</div>
3030
<div class="form-group">
31-
<label for="urlSlug">URL Slug (optional)</label>
31+
<label for="slug">URL Slug (optional)</label>
3232
<small>If not specified one will be created from the title</small>
33-
<input type="text" name="urlSlug" class="form-control" value={{ $post->slug }} />
33+
<input type="text" name="slug" class="form-control" value={{ $post->slug }} />
3434
</div>
3535
<input type="submit" name="update" class="btn btn-success" value="Update" />
3636
<input type="submit" name="delete" class="btn btn-danger" value="Delete" />

0 commit comments

Comments
 (0)