Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Schema::create('user_portfolio', function (Blueprint $table) {
- $table->id();
- $table->unsignedBigInteger('user_id');
- $table->unsignedBigInteger('idea_id');
- $table->timestamps();
- $table->foreign('user_id')->references('id')->on('users');
- $table->foreign('idea_id')->references('id')->on('ideas');
- });
- Schema::create('user_wishlist', function (Blueprint $table) {
- $table->id();
- $table->unsignedBigInteger('user_id');
- $table->unsignedBigInteger('idea_id');
- $table->timestamps();
- $table->foreign('user_id')->references('id')->on('users');
- $table->foreign('idea_id')->references('id')->on('ideas');
- });
- ClientControleller
- public function view($id)
- {
- $idea = Idea::with('user', 'categories', 'currencies', 'majorsectors', 'minorsectors', 'regions', 'countries')->find($id);
- $user = User::with('portfolio', 'wishlist')->find(Auth::user()->id);
- $portfolio = $user->portfolio;
- $wishlist = $user->wishlist;
- $pagename = $idea->title;
- return view('client.view-idea', compact('idea', 'pagename', 'portfolio', 'wishlist'));
- }
- public function add_to_portfolio($id)
- {
- $user = Auth::user();
- $user->wishlist()->detach($id);
- $user->portfolio()->attach($id);
- return redirect()->back()->with('success', 'Congratulations, Added to portfolio successfully!');
- }
- public function portfolio()
- {
- $user = User::with('portfolio')->find(Auth::user()->id);
- $ideas = $user->portfolio;
- $pagename = 'My Portfolio';
- return view('client.portfolio', compact('ideas', 'pagename'));
- }
- public function add_to_wishlist($id)
- {
- $user = Auth::user();
- $user->wishlist()->attach($id);
- return redirect()->back()->with('success', 'Congratulations, Added to wishlist successfully!');
- }
- public function wishlist()
- {
- $user = User::with('wishlist')->find(Auth::user()->id);
- $ideas = $user->wishlist;
- $pagename = 'My Wishlist';
- return view('client.portfolio', compact('ideas', 'pagename'));
- }
- Idea
- public function userportfolio()
- {
- return $this->belongsToMany(User::class, 'user_portfolio', 'idea_id', 'user_id');
- }
- public function userwishlist()
- {
- return $this->belongsToMany(User::class, 'user_wishlist', 'idea_id', 'user_id');
- }
- User
- public function portfolio()
- {
- return $this->belongsToMany(Idea::class, 'user_portfolio', 'user_id', 'idea_id');
- }
- public function wishlist()
- {
- return $this->belongsToMany(Idea::class, 'user_wishlist', 'user_id', 'idea_id');
- }
- portfolio blade (new)
- <x-app-layout>
- <div class="layout-main">
- @include('layouts.header')
- <div class="content-wrapper py-2">
- <div class="container">
- <ul class="d-flex align-items-center custom-breadcrumb list-unstyled mb-2 py-1">
- <li>
- <a href="FIXME:">Home</a>
- </li>
- <li>
- {{ $pagename }}
- </li>
- </ul>
- <h5 class="page-title">{{ $pagename }}</h5>
- </div>
- <!-- Start Dynamic Sections Starts here -->
- <section class="investment-lists pb-5">
- <div class="container">
- <div class="row mt-3">
- @foreach ($ideas as $idea)
- <div class="col-lg-4 mb-3">
- <div class="custom-card">
- <figure>
- <img src="https://developers.elementor.com/docs/assets/img/elementor-placeholder-image.png"
- class="w-100" alt="">
- </figure>
- <p class="mb-2 title">{{ $idea->title }}</p>
- <p class="mb-2 content">{{ $idea->abstract }}</p>
- <span class="d-block mb-2 date">{{ date('d/m/Y', strtotime($idea->published_date)) }}</span>
- <a href="{{ route('client.view-idea', ['id' => $idea->id]) }}"
- class="btn btn-custom px-4 py-2 d-flex align-items-center justify-content-center">Read
- More <i class="fas fa-arrow-right ml-2"></i></a>
- </div>
- </div>
- @endforeach
- </div>
- </div>
- </section>
- <!-- Start Dynamic Sections Ends here -->
- </div>
- </div>
- </x-app-layout>
- view-idea blade
- <section class="idea-details">
- <div class="container">
- <div class="d-flex align-items-center justify-content-between">
- <h4 class="page-title">{{ $idea->title }}</h4>
- <div class="d-flex align-items-center">
- @if(in_array($idea->id, $wishlist->pluck('id')->toArray()))
- <form action="{{ route('client.add-to-portfolio', ['id' => $idea->id]) }}" method="POST">
- @csrf
- <button type="submit" class="btn btn-custom px-4 py-2 d-flex align-items-center justify-content-center">
- <i class="fas fa-plus-circle mr-2"></i>
- Add to portfolio
- </button>
- </form>
- @endif
- @if(in_array($idea->id, $portfolio->pluck('id')->toArray()))
- <button type="button" class="btn btn-custom success px-4 py-2 d-flex align-items-center justify-content-center">
- <i class="fas fa-wallet mr-2"></i>
- Added to portfolio
- </button>
- @endif
- @if((!in_array($idea->id, $portfolio->pluck('id')->toArray())) && (!in_array($idea->id, $wishlist->pluck('id')->toArray())))
- <form action="{{ route('client.add-to-portfolio', ['id' => $idea->id]) }}" method="POST">
- @csrf
- <button type="submit" class="btn btn-custom px-4 py-2 d-flex align-items-center justify-content-center">
- <i class="fas fa-plus-circle mr-2"></i>
- Add to portfolio
- </button>
- </form>
- <form action="{{ route('client.add-to-wishlist', ['id' => $idea->id]) }}" method="POST">
- @csrf
- <button type="submit" class="btn btn-danger-custom px-4 py-2 d-flex align-items-center justify-content-center ml-2">
- <i class="fas fa-bookmark mr-2"></i>
- Add to wishlist
- </button>
- </form>
- @endif
- </div>
- </div>
- <div class="pt-4">
- <div class="row">
- <div class="col-lg-5">
- <img
- src="https://images.unsplash.com/photo-1512314889357-e157c22f938d?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2071&q=80"
- class="w-100" style="border-radius: 8px;" alt="{{ $idea->title }}">
- </div>
- </div>
- </div>
- <div class="switcher mt-4">
- <ul class="nav nav-tabs" id="myTab" role="tablist">
- <li class="nav-item">
- <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home"
- aria-selected="true">Idea detail</a>
- </li>
- <li class="nav-item">
- <a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile"
- aria-selected="false">Description</a>
- </li>
- </ul>
- <div class="tab-content" id="myTabContent">
- <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">
- <div class="row mt-3 ml-2">
- <div class="col-lg-3">
- <div class="idea-details-text mb-4">
- <p>Category</p>
- @foreach($idea->categories as $category)
- <span style="font-weight: bold;">{{ $category->title }}</span>,
- @endforeach
- </div>
- </div>
- <div class="col-lg-3">
- <div class="idea-details-text mb-4">
- <p>Author</p>
- <span style="font-weight: bold;">{{ $idea->user->name }}</span>
- </div>
- </div>
- <div class="col-lg-3">
- <div class="idea-details-text mb-4">
- <p>Risk rating</p>
- <span style="font-weight: bold;">{{ $idea->risk_rating }}</span>
- </div>
- </div>
- <div class="col-lg-3">
- <div class="idea-details-text mb-4">
- <p>Instrument</p>
- <span class="text-capitalize" style="font-weight: bold;">{{ $idea->instruments }}</span>
- </div>
- </div>
- <div class="col-lg-3">
- <div class="idea-details-text mb-4">
- <p>Regions</p>
- @foreach($idea->regions as $region)
- <span class="text-capitalize" style="font-weight: bold;">{{ $region->name }}</span>,
- @endforeach
- </div>
- </div>
- <div class="col-lg-3">
- <div class="idea-details-text mb-4">
- <p>Countries</p>
- @foreach($idea->countries as $country)
- <span class="text-capitalize" style="font-weight: bold;">{{ $country->name }}</span>,
- @endforeach
- </div>
- </div>
- <div class="col-lg-3">
- <div class="idea-details-text mb-4">
- <p>Publication date</p>
- <span style="font-weight: bold;">{{ date('d/m/Y', strtotime($idea->published_date)) }}</span>
- </div>
- </div>
- <div class="col-lg-3">
- <div class="idea-details-text mb-4">
- <p>Expiry Date</p>
- <span style="font-weight: bold;">{{ date('d/m/Y', strtotime($idea->expiry_date)) }}</span>
- </div>
- </div>
- <div class="col-lg-3">
- <div class="idea-details-text mb-4">
- <p>Currency</p>
- @foreach($idea->currencies as $currency)
- <span class="text-uppercase" style="font-weight: bold;">{{ $currency->name }}</span>,
- @endforeach
- </div>
- </div>
- <div class="col-lg-3">
- <div class="idea-details-text mb-4">
- <p>Major Sectors</p>
- @foreach($idea->majorsectors as $sector)
- <span class="text-capitalize" style="font-weight: bold;">{{ $sector->name }}</span>,
- @endforeach
- </div>
- </div>
- <div class="col-lg-3">
- <div class="idea-details-text mb-4">
- <p>Minor Sector</p>
- @foreach($idea->minorsectors as $sector)
- <span class="text-capitalize" style="font-weight: bold;">{{ $sector->name }}</span>,
- @endforeach
- </div>
- </div>
- </div>
- </div>
- <div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">
- <div class="idea-details-text mt-4 ml-4">
- <p style="font-weight: bold;">Abstract</p>
- <p>{{ $idea->abstract }}</p>
- </div>
- <div class="idea-details-text mt-4 ml-4">
- <p style="font-weight: bold;">Idea Description</p>
- <p>{{ $idea->abstract }}</p>
- </div>
- </div>
- </div>
- </div>
- </div>
- </section>
- navigation blade
- <li class="d-flex align-items-center {{ request()->routeIs('client.portfolio') ? 'active' : '' }}">
- <a class="d-block" href="{{ route('client.portfolio') }}">
- <i class="fas fa-chart-bar"></i>
- <span>Portfolio</span>
- </a>
- </li>
- <li class="d-flex align-items-center {{ request()->routeIs('client.wishlist') ? 'active' : '' }}">
- <a class="d-block" href="{{ route('client.wishlist') }}">
- <i class="fas fa-bookmark"></i>
- <span>Wishlist</span>
- </a>
- </li>
- web
- Route::post('/add-to-portfolio/{id}', [ClientController::class, 'add_to_portfolio'])->name('add-to-portfolio');
- Route::get('/portfolio', [ClientController::class, 'portfolio'])->name('portfolio');
- Route::post('/add-to-wishlist/{id}', [ClientController::class, 'add_to_wishlist'])->name('add-to-wishlist');
- Route::get('/wishlist', [ClientController::class, 'wishlist'])->name('wishlist');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement