Advertisement
psycho8948

Untitled

Mar 28th, 2023
834
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Client Controller
  2. <?php
  3.  
  4. namespace App\Http\Controllers;
  5.  
  6. use App\Http\Controllers\Controller;
  7. use Illuminate\Http\Request;
  8. use App\Models\User;
  9. use App\Models\Idea;
  10. use App\Models\Category;
  11. use Illuminate\Support\Facades\Auth;
  12.  
  13.  
  14. class ClientController extends Controller
  15. {
  16.     //
  17.     public function index()
  18.     {
  19.         return view('dashboard')->with('pagename', 'Dashboard');
  20.     }
  21.     public function set_preferences_view()
  22.     {
  23.         $categories = Category::all();
  24.  
  25.         $data = [
  26.             'categories' => $categories,
  27.             'pagename' => 'Set Preferences'
  28.         ];
  29.  
  30.         return view('client.set-preferences', $data);
  31.     }
  32.     public function set_preferences(Request $request)
  33.     {
  34.  
  35.         $user = User::find($request->user()->id);
  36.         $preferences = $request->preferences;
  37.  
  38.         $user->categories()->attach($preferences);
  39.  
  40.  
  41.         return redirect()->route('client.dashboard')->with('success', 'Preferences Set Successfully!');
  42.     }
  43.     public function suggested_ideas()
  44.     {
  45.         $user = Auth::user();
  46.         $ideas = Idea::whereHas('categories', function($query) use ($user) {
  47.             $query->whereIn('categories.id', $user->categories()->pluck('categories.id')->toArray());
  48.         })->where('status', 'Published')->get();
  49.        
  50.         return view('client.suggested-ideas', compact('ideas'));
  51.     }
  52.     public function view($id)
  53.     {
  54.         $idea = Idea::with('categories')->find($id);
  55.         $pagename = $idea->title;
  56.  
  57.         return view('idea.view-idea', compact('idea', 'pagename'));
  58.     }
  59. }
  60.  
  61.  
  62.  
  63. suggested-ideas.blade.php
  64.  
  65. <x-app-layout>
  66.     <div class="layout-main">
  67.         @include('layouts.header')
  68.         <div class="content-wrapper py-2">
  69.             <div class="container">
  70.                 <ul class="d-flex align-items-center custom-breadcrumb list-unstyled mb-2 py-1">
  71.                     <li>
  72.                         <a href="FIXME:">Home</a>
  73.                     </li>
  74.                     <li>
  75.                         Suggested Ideas
  76.                     </li>
  77.                 </ul>
  78.                 <h5 class="page-title">Suggested Ideas</h5>
  79.             </div>
  80.             <!-- Start Dynamic Sections Starts here -->
  81.             <section class="investment-lists pb-5">
  82.                 <div class="container">
  83.                     <div class="row mt-3">
  84.                         @foreach ($ideas as $idea)
  85.                             <div class="col-lg-4 mb-3">
  86.                                 <div class="custom-card">
  87.                                     <figure>
  88.                                         <img src="https://developers.elementor.com/docs/assets/img/elementor-placeholder-image.png"
  89.                                             class="w-100" alt="">
  90.                                     </figure>
  91.                                     <p class="mb-2 title">{{ $idea->title }}</p>
  92.                                     <p class="mb-2 content">{{ $idea->abstract }}</p>
  93.                                     <span class="d-block mb-2 date">{{ date('d/m/Y', strtotime($idea->published_date)) }}</span>
  94.                                     <a href="{{ route('client.view-idea', ['id' => $idea->id]) }}"
  95.                                         class="btn btn-custom px-4 py-2 d-flex align-items-center justify-content-center">Read
  96.                                         More <i class="fas fa-arrow-right ml-2"></i></a>
  97.                                 </div>
  98.                             </div>
  99.                         @endforeach
  100.                     </div>
  101.                 </div>
  102.             </section>
  103.             <!-- Start Dynamic Sections Ends here -->
  104.         </div>
  105.     </div>
  106. </x-app-layout>
  107.  
  108. view-idea.blade.php
  109.  
  110. <x-app-layout>
  111.     <div class="layout-main">
  112.         @include('layouts.header')
  113.         <div class="content-wrapper py-2">
  114.             <div class="container">
  115.                 <ul class="d-flex align-items-center custom-breadcrumb list-unstyled mb-2 py-1">
  116.                     <li>
  117.                         <a href="{{ route('ideator.dashboard') }}">Home</a>
  118.                     </li>
  119.                     <li>
  120.                         <a href="{{ route('ideator.ideas') }}">Ideas</a>
  121.                     </li>
  122.                     <li>
  123.                         {{ $pagename ?? '' }}
  124.                     </li>
  125.                 </ul>
  126.                 <h5 class="page-title">{{ $pagename ?? '' }}</h5>
  127.             </div>
  128.             <!-- Start Dynamic Sections Starts here -->
  129.             <section class="view-idea py-5">
  130.                 <div class="container">
  131.                     <div class="row align-items-center">
  132.                         <div class="col-lg-5">
  133.                             <figure class="idea-image">
  134.                                 <img src="https://images.unsplash.com/photo-1512314889357-e157c22f938d?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2071&q=80"
  135.                                     class="w-100" alt="{{ $idea->title }}">
  136.                             </figure>
  137.                         </div>
  138.                         <div class="col-lg-7">
  139.                             <div class="idea-details">
  140.                                 <div class="idea-details-text mb-4">
  141.                                     <p class="title mb-0">Title</p>
  142.                                     <span class="d-block">{{$idea->title}}</span>
  143.                                 </div>
  144.                                 <div class="idea-details-text mb-4">
  145.                                     <p class="title mb-0">Idea Category</p>
  146.                                     <ul class="list-unstyled mb-0">
  147.                                         @foreach($idea->categories as $category)
  148.                                         <li><span>{{ $category->title }}</span></li>
  149.                                         @endforeach
  150.                                     </ul>
  151.                                     <!-- <span class="d-block">{{$idea->categories}}</span> -->
  152.                                 </div>
  153.                                 <div class="idea-details-text mb-4">
  154.                                     <p class="title mb-0">Country</p>
  155.                                     <span class="d-block text-capitalize">{{$idea->country}}</span>
  156.                                 </div>
  157.                                 <div class="idea-details-text mb-4">
  158.                                     <p class="title mb-0">Region</p>
  159.                                     <span class="d-block text-capitalize">{{$idea->region}}</span>
  160.                                 </div>
  161.                             </div>
  162.                         </div>
  163.                     </div>
  164.                     <div class="row mt-4">
  165.                         <div class="col-lg-12">
  166.                             <div class="h4">Description</div>
  167.                             <p>{{$idea->abstract}}</p>
  168.                             <p>{{$idea->content}}</p>
  169.                             <!-- <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quasi tenetur doloremque minima quis a commodi nostrum suscipit, culpa mollitia ipsum exercitationem, repellat eius ex quibusdam perspiciatis reiciendis inventore. Dolorem blanditiis earum debitis dicta voluptatem explicabo, quisquam autem! Repellat, dolores nihil.</p>
  170.                                 <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quasi tenetur doloremque minima quis a commodi nostrum suscipit, culpa mollitia ipsum exercitationem, repellat eius ex quibusdam perspiciatis reiciendis inventore. Dolorem blanditiis earum debitis dicta voluptatem explicabo, quisquam autem! Repellat, dolores nihil.</p>
  171.                                 <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quasi tenetur doloremque minima quis a commodi nostrum suscipit, culpa mollitia ipsum exercitationem, repellat eius ex quibusdam perspiciatis reiciendis inventore. Dolorem blanditiis earum debitis dicta voluptatem explicabo, quisquam autem! Repellat, dolores nihil.</p> -->
  172.                         </div>
  173.                     </div>
  174.                 </div>
  175.         </div>
  176.         </section>
  177.         <!-- Start Dynamic Sections Ends here -->
  178.     </div>
  179.     </div>
  180. </x-app-layout>
  181.  
  182.  
  183. navigation
  184. <li class="d-flex align-items-center {{ request()->routeIs('client.suggested-ideas') ? 'active' : '' }}">
  185.                     <a class="d-block" href="{{ route('client.suggested-ideas') }}">
  186.                         <i class="fas fa-lightbulb"></i>
  187.                         <span>Suggested Ideas</span>
  188.                     </a>
  189.                 </li>
  190.  
  191. web.php
  192.  
  193.         Route::get('/set-preferences', [ClientController::class, 'set_preferences_view'])->name('set-preferences-view');
  194.         Route::post('/set-preferences', [ClientController::class, 'set_preferences'])->name('set-preferences');
  195.         Route::get('/suggested-ideas', [ClientController::class, 'suggested_ideas'])->name('suggested-ideas');
  196.         Route::get('/idea/{id}/view', [ClientController::class, 'view'])->name('view-idea');
  197.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement