FEATURE: make nicer URL uniqueness check
This commit is contained in:
@@ -12,6 +12,7 @@ use App\Models\FileManager\File;
|
|||||||
use Illuminate\Support\Facades\App;
|
use Illuminate\Support\Facades\App;
|
||||||
use Illuminate\Support\Facades\Event;
|
use Illuminate\Support\Facades\Event;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||||
|
|
||||||
class EditContent implements Interaction
|
class EditContent implements Interaction
|
||||||
{
|
{
|
||||||
@@ -81,7 +82,7 @@ class EditContent implements Interaction
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
'title' => 'required',
|
'title' => 'required',
|
||||||
'url' => 'required|unique:contents,url,' . $id,
|
'url' => 'required|unique:contents,url,' . $id.',id,deleted_at,NULL,language,' . LaravelLocalization::getCurrentLocale(),
|
||||||
'publishedFrom' => 'date',
|
'publishedFrom' => 'date',
|
||||||
'publishedTo' => 'date',
|
'publishedTo' => 'date',
|
||||||
'titlePhoto' => 'exists:files,id',
|
'titlePhoto' => 'exists:files,id',
|
||||||
|
|||||||
@@ -4,14 +4,11 @@ namespace App\Cms\Interactions\Admin\Content;
|
|||||||
use App\CMS\Contracts\Interaction;
|
use App\CMS\Contracts\Interaction;
|
||||||
use App\CMS\Contracts\Repositories\Content as ContentRepository;
|
use App\CMS\Contracts\Repositories\Content as ContentRepository;
|
||||||
use App\CMS\Contracts\Repositories\Module;
|
use App\CMS\Contracts\Repositories\Module;
|
||||||
|
use App\CMS\Enumerations\ContentStatuses;
|
||||||
use App\CMS\Helpers\CurrentTemplate;
|
use App\CMS\Helpers\CurrentTemplate;
|
||||||
use App\Events\CreateNewContent;
|
|
||||||
use App\Models\Content\Content;
|
use App\Models\Content\Content;
|
||||||
use App\Models\FileManager\File;
|
use App\Models\FileManager\File;
|
||||||
use Carbon\Carbon;
|
|
||||||
use Illuminate\Support\Facades\App;
|
use Illuminate\Support\Facades\App;
|
||||||
use Illuminate\Support\Facades\Event;
|
|
||||||
use Illuminate\Support\Str;
|
|
||||||
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||||
|
|
||||||
class NewContent implements Interaction
|
class NewContent implements Interaction
|
||||||
@@ -75,11 +72,15 @@ class NewContent implements Interaction
|
|||||||
|
|
||||||
public function getValidationRules($parameters = [])
|
public function getValidationRules($parameters = [])
|
||||||
{
|
{
|
||||||
|
// get all available statuses
|
||||||
|
$statuses = ContentStatuses::getSimple();
|
||||||
|
$statuses = implode(',', $statuses);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'titlePhoto' => 'image',
|
'titlePhoto' => 'image',
|
||||||
'title' => 'required',
|
'title' => 'required',
|
||||||
'url' => 'required|unique:contents,url',
|
'url' => 'required|unique:contents,url,NULL,id,deleted_at,NULL,language,' . LaravelLocalization::getCurrentLocale(),
|
||||||
'status' => 'required|in:draft,protected,public',
|
'status' => 'required|in:'.$statuses,
|
||||||
'parentPage' => 'exists:contents,id',
|
'parentPage' => 'exists:contents,id',
|
||||||
'publishedFrom' => 'date',
|
'publishedFrom' => 'date',
|
||||||
'publishedTo' => 'date',
|
'publishedTo' => 'date',
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
|
||||||
|
class AddUniqueKeyToDeletedAtInContents extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::table('contents', function (Blueprint $table) {
|
||||||
|
$table->dropUnique(['language', 'url']);
|
||||||
|
$table->unique(['language', 'url', 'deleted_at']);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::table('contents', function (Blueprint $table) {
|
||||||
|
$table->dropUnique(['language', 'url', 'deleted_at']);
|
||||||
|
$table->unique(['language', 'url']);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user