123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- <?php
- namespace App\Http\Controllers\Admin;
- use DB, Cache;
- use App\{
- DiscoverCategory,
- DiscoverCategoryHashtag,
- Hashtag,
- Media,
- Profile,
- StatusHashtag
- };
- use Carbon\Carbon;
- use Illuminate\Http\Request;
- use Illuminate\Validation\Rule;
- trait AdminDiscoverController
- {
- public function discoverHome()
- {
- $categories = DiscoverCategory::orderByDesc('id')->paginate(10);
- return view('admin.discover.home', compact('categories'));
- }
- public function discoverCreateCategory()
- {
- return view('admin.discover.create-category');
- }
- public function discoverCreateCategoryStore(Request $request)
- {
- $this->validate($request, [
- 'name' => 'required|string|min:1',
- 'active' => 'required|boolean',
- 'media' => 'nullable|integer|min:1'
- ]);
- $name = $request->input('name');
- $slug = str_slug($name);
- $active = $request->input('active');
- $media = (int) $request->input('media');
- $media = Media::findOrFail($media);
- $category = DiscoverCategory::firstOrNew(['slug' => $slug]);
- $category->name = $name;
- $category->active = $active;
- $category->media_id = $media->id;
- $category->save();
- return $category;
- }
- public function discoverCategoryEdit(Request $request, $id)
- {
- $category = DiscoverCategory::findOrFail($id);
- return view('admin.discover.show', compact('category'));
- }
- public function discoverCategoryUpdate(Request $request, $id)
- {
- $this->validate($request, [
- 'name' => 'required|string|min:1',
- 'active' => 'required|boolean',
- 'media' => 'nullable|integer|min:1',
- 'hashtags' => 'nullable|string'
- ]);
- $name = $request->input('name');
- $slug = str_slug($name);
- $active = $request->input('active');
- $media = (int) $request->input('media');
- $media = Media::findOrFail($media);
- $category = DiscoverCategory::findOrFail($id);
- $category->name = $name;
- $category->active = $active;
- $category->media_id = $media->id;
- $category->save();
- return $category;
- }
- public function discoveryCategoryTagStore(Request $request)
- {
- $this->validate($request, [
- 'category_id' => 'required|integer|min:1',
- 'hashtag' => 'required|string',
- 'action' => 'required|string|min:1|max:6'
- ]);
- $category_id = $request->input('category_id');
- $category = DiscoverCategory::findOrFail($category_id);
- $hashtag = Hashtag::whereName($request->input('hashtag'))->firstOrFail();
- $tag = DiscoverCategoryHashtag::firstOrCreate([
- 'hashtag_id' => $hashtag->id,
- 'discover_category_id' => $category->id
- ]);
- if($request->input('action') == 'delete') {
- $tag->delete();
- return [];
- }
- return $tag;
- }
- }
|