Skip to content

Commit 114e0ce

Browse files
author
Laravel Nuxtjs
authored
Merge pull request #24 from mansorygit/master
new info
2 parents 200b9e1 + 83d5429 commit 114e0ce

File tree

18 files changed

+419
-21
lines changed

18 files changed

+419
-21
lines changed

a.cmd

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,28 @@
22

33
doskey pa=php artisan $*
44
doskey pas=php artisan serve $*
5-
doskey pas80=php artisan serve --port=80 $*
6-
doskey pasl=php artisan storage:link $*
7-
doskey pacc=php artisan cache:clear $*
8-
doskey pacoc=php artisan config:clear $*
9-
doskey pads=php artisan db:seed $*
10-
doskey pai=php artisan inspire $*
11-
doskey pam=php artisan migrate $*
5+
126
doskey pamc=php artisan make:controller $*
13-
doskey pamco=php artisan make:component $*
147
doskey pame=php artisan make:event $*
158
doskey paml=php artisan make:listener $*
9+
doskey pamj=php artisan make:job $*
1610
doskey pamm=php artisan make:model $*
1711
doskey pammi=php artisan make:middleware $*
18-
doskey pamr=php artisan migrate:fresh $*
19-
doskey pamrs=php artisan migrate:fresh --seed $*
20-
doskey pams=php artisan migrate --seed $*
12+
doskey pams=php artisan make:seeder $*
2113
doskey pamp=php artisan make:policy $*
14+
doskey pamreq=php artisan make:request $*
15+
doskey pamres=php artisan make:resource $*
16+
17+
doskey pakg=php artisan key:generate $*
18+
doskey pasl=php artisan storage:link $*
2219
doskey parl=php artisan route:list $*
23-
doskey pavc=php artisan view:clear $*
20+
21+
doskey pacc=php artisan cache:clear $*
22+
doskey pacoc=php artisan config:clear $*
2423
doskey parc=php artisan route:clear $*
2524
doskey paoc=php artisan optimize:clear $*
26-
doskey pakg=php artisan key:generate $*
27-
doskey pamse=php artisan make:seeder $*
28-
doskey pamj=php artisan make:job $*
25+
doskey pamrs=php artisan migrate:fresh --seed $*
26+
2927
doskey paqw=php artisan queue:work $*
3028
doskey paql=php artisan queue:listen $*
3129
doskey pasr=php artisan schedule:run $*
32-
doskey pamreq=php artisan make:request $*
33-
doskey pamres=php artisan make:resource $*
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Panel;
4+
5+
use App\Http\Controllers\Controller;
6+
use App\Models\Category\Category;
7+
use Illuminate\Http\Request;
8+
9+
class CategoryController extends Controller
10+
{
11+
/**
12+
* @note CRUD For Category
13+
*/
14+
15+
//
16+
public function index()
17+
{
18+
$this->authorize('browse', Category::class);
19+
20+
$categories = Category::whereNull('category_id')
21+
->with('childes')
22+
->get();
23+
24+
return response()->json(['data' => $categories]);
25+
}
26+
27+
//
28+
public function show(Category $category)
29+
{
30+
$this->authorize('read', $category);
31+
32+
return $category;
33+
}
34+
35+
//
36+
public function store(Request $request)
37+
{
38+
$this->authorize('add', Category::class);
39+
40+
$category = Category::create($request->validate([
41+
'title' => 'required|min:3',
42+
'category_id' => 'nullable',
43+
]));
44+
45+
return response()->json(['data' => $category]);
46+
}
47+
48+
//
49+
public function update(Request $request, Category $category)
50+
{
51+
$this->authorize('edit', $category);
52+
53+
$request->validate([
54+
'title' => 'required|min:3'
55+
]);
56+
57+
$category->title = $request->title;
58+
$category->category_id = $request->category_id;
59+
$category->update();
60+
61+
return response()->json(['data' => $category]);
62+
}
63+
64+
//
65+
public function destroy(Category $category)
66+
{
67+
$this->authorize('delete', $category);
68+
69+
$category->delete();
70+
71+
return null;
72+
}
73+
}

app/Http/Controllers/Panel/ProductController.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,11 @@ public function destroy(Product $product)
9595
{
9696
$this->authorize('delete', Product::class);
9797

98-
// $product->delete();
98+
// cant seeder delete
99+
$dontDelete = [1, 2, 3, 4];
100+
if (!in_array($product->id, $dontDelete)) {
101+
$product->delete();
102+
}
99103

100104
return response()->json([
101105
'message'=>[

app/Http/Controllers/Panel/RoleController.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,11 @@ public function destroy(Role $role)
9494
{
9595
$this->authorize('delete', Role::class);
9696

97-
// $role->delete();
97+
// cant seeder delete
98+
$dontDelete = [1, 2];
99+
if (!in_array($role->id, $dontDelete)) {
100+
$role->delete();
101+
}
98102

99103
return response()->json([
100104
'message'=>[

app/Http/Controllers/Panel/UserController.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,11 @@ public function destroy(User $user)
113113
{
114114
$this->authorize('delete', User::class);
115115

116-
// $user->delete();
116+
// cant seeder delete
117+
$dontDelete = [1, 2, 3];
118+
if (!in_array($user->id, $dontDelete)) {
119+
$user->delete();
120+
}
117121

118122
return response()->json([
119123
'message'=>[
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
namespace App\Http\Requests\Category;
4+
5+
use Illuminate\Foundation\Http\FormRequest;
6+
7+
class StoreCategory extends FormRequest
8+
{
9+
/**
10+
* @note Validation For Save Category
11+
* @see \App\Http\Controllers\Panel\CategoryController::store
12+
*/
13+
public function rules()
14+
{
15+
return [
16+
'category' => 'required|min:4|unique:categories',
17+
];
18+
}
19+
20+
public function authorize()
21+
{
22+
return true;
23+
}
24+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
namespace App\Http\Requests\Category;
4+
5+
use Illuminate\Foundation\Http\FormRequest;
6+
7+
class UpdateCategory extends FormRequest
8+
{
9+
/**
10+
* @note Validation For Edit Category
11+
* @see \App\Http\Controllers\Panel\CategoryController::update
12+
*/
13+
public function rules()
14+
{
15+
return [
16+
'category' => 'required|min:4',
17+
];
18+
}
19+
20+
public function authorize()
21+
{
22+
return true;
23+
}
24+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
namespace App\Http\Resources\Category;
4+
5+
use Illuminate\Http\Resources\Json\JsonResource;
6+
7+
class Category extends JsonResource
8+
{
9+
/**
10+
* @note Array Export, Whit All Relationships If Exist
11+
*
12+
* @param $request
13+
* @return array
14+
*/
15+
public function toArray($request)
16+
{
17+
return parent::toArray($request);
18+
// return [
19+
// 'id' => $this->id,
20+
// ];
21+
}
22+
}

app/Models/Category/Brand.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
namespace App\Models\Category;
4+
5+
use Illuminate\Database\Eloquent\Model;
6+
7+
class Brand extends Model
8+
{
9+
protected $table = 'category_brands';
10+
11+
protected $fillable = ['brand'];
12+
13+
public function categories()
14+
{
15+
return $this->morphToMany(Category::class, 'categoryable');
16+
}
17+
}

app/Models/Category/Category.php

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<?php
2+
3+
namespace App\Models\Category;
4+
5+
use Illuminate\Database\Eloquent\Model;
6+
7+
class Category extends Model
8+
{
9+
protected $fillable = ['category'];
10+
11+
public function childes()
12+
{
13+
return $this->hasMany(self::class, 'category_id');
14+
}
15+
16+
public function allChildes()
17+
{
18+
return collect($this->childes)->pluck('posts')->flatten()->unique();
19+
}
20+
21+
public function getAll($categories)
22+
{
23+
$append = collect();
24+
foreach ($categories as $category)
25+
{
26+
if ($category->childes->count())
27+
{
28+
$append->merge($category->childes);
29+
}
30+
}
31+
if ($append->count())
32+
{
33+
$append = $this->getAll($append);
34+
}
35+
return $categories->merge($append);
36+
}
37+
38+
public function parent()
39+
{
40+
return $this->belongsTo(self::class, 'category_id');
41+
}
42+
43+
public static function backParent($category)
44+
{
45+
if ($category->category_id == null) {
46+
return $category;
47+
} else {
48+
return Category::backParent($category->parent);
49+
}
50+
}
51+
52+
public function brands()
53+
{
54+
return $this->morphedByMany(Brand::class, 'categoryable');
55+
}
56+
}

0 commit comments

Comments
 (0)