Arkadaşlar Merhaba, kendimce bir proje başlattım, platformda da çok yeniyim ama kendimi geliştirmeye çalışıyorum. Takıldığım bir nokta var. Belki çok basit bir yolu var fakat maalesef yapabilmiş değilim. Bu konuda da yardımınıza ihiyacım var.
Controller kodlarımı aşağıda bulabilirsiniz.
`<?php
namespace App\Http\Controllers;
use App\Utility\EmailUtility;
use App\Utility\NotificationUtility;
use Illuminate\Http\Request;
use App\Models\UserProfile;
use App\Models\Review;
use App\Models\Project;
use App\User;
use Auth;
class ReviewController extends Controller
{
public function freelancer_review_index()
{
$reviews = Review::where('reviewed_user_role_id', 2)->orderBy('created_at', 'desc')->paginate(10);
return view('admin.default.reviews.freelancer', compact('reviews'));
}
public function client_review_index()
{
$reviews = Review::where('reviewed_user_role_id', 3)->orderBy('created_at', 'desc')->paginate(10);
return view('admin.default.reviews.client', compact('reviews'));
}
public function review_index($type)
{
$reviews = Review::where('reviewed_user_id', Auth::user()->id)->latest()->paginate(10);
return view('frontend.default.user.reviews.index', compact('reviews'));
}
public function store(Request $request)
{
$review = new Review;
$review->project_id = $request->project_id;
$review->reviewer_user_id = Auth::user()->id;
$review->review = $request->review;
$review->rating = $request->rating;
if (isFreelancer()) {
$project = Project::find($request->project_id);
$review->reviewed_user_id = $project->client_user_id;
$review->reviewed_user_role_id = 3;
} else {
$project = Project::find($request->project_id);
$review->reviewed_user_id = $project->project_user->user_id;
$review->reviewed_user_role_id = 2;
}
$review->save();
if (isFreelancer()) {
//freelancer to client
NotificationUtility::set_notification(
"client_review_by_freelancer",
"You have been given a review for a project by",
route('user_review', ['type'=>'client'], false),
$project->client_user_id,
Auth::user()->id,
'client'
);
EmailUtility::send_email(
"You have been given a review for a project",
"You have been given a review for a project by". Auth::user()->name,
get_email_by_user_id($project->client_user_id),
route('user_review', ['type'=>'client'])
);
} else if (isClient()) {
//client to freelancer
NotificationUtility::set_notification(
"freelancer_review_by_client",
"You have been given a review for a project by",
route('user_review', ['type'=>'freelancer'], false),
$project->project_user->user_id,
Auth::user()->id,
'freelancer'
);
EmailUtility::send_email(
"You have been given a review for a project",
"You have been given a review for a project by". Auth::user()->name,
get_email_by_user_id($project->project_user->user_id),
route('user_review', ['type'=>'freelancer'])
);
}
$userProfile = $review->reviewed->profile;
if (count(Review::where('reviewed_user_id', $review->reviewed_user_id)->where('published', 1)->get()) > 0) {
$userProfile->rating = Review::where('reviewed_user_id', $review->reviewed_user_id)->where('published', 1)->avg('rating');
} else {
$userProfile->rating = 0;
}
$userProfile->save();
flash('Review has been submitted successfully')->success();
return back();
}
function update_review_published(Request $request)
{
$review = Review::findOrFail($request->id);
$review->published = $request->status;
$review->save();
$userProfile = $review->reviewed->profile;
if (count(Review::where('reviewed_user_id', $review->reviewed_user_id)->where('published', 1)->get()) > 0) {
$userProfile->rating = Review::where('reviewed_user_id', $review->reviewed_user_id)->where('published', 1)->avg('rating');
} else {
$userProfile->rating = 0;
}
$userProfile->save();
return 1;
}
}
Veritabanından son yapılan yorumları index.blade.php üzerinde göstremeye çalışıyorum. Fakat ne denediysem hata aldım.
index.blade.php@extends('frontend.default.layouts.app')
@section('content')
<!--==================== Testimonials ====================-->
@if( get_setting('latest_review_show') == 'on')
<section class="py-7">
<div class="container">
<div class="text-center mb-5 w-lg-75 w-xl-50 lh-1-8 mx-auto">
<h2 class="fw-700">{{ get_setting('latest_project_title') }}</h2>
<p class="fs-15 text-secondary">{{ get_setting('latest_project_subtitle') }}</p>
</div>
<div class="row">
<div class="col-xl-10 mx-auto">
@if(\App\Models\SystemConfiguration::where('type', 'published')->first()->value == 1)
@php $reviews = \App\Models\Review::reviewed_user_id()->where('published', 1)->latest()->get()->take(3); @endphp
@else
@php $reviews = \App\Models\Review::reviewed_user_id()->latest()->get()->take(3); @endphp
@endif
@foreach ($reviews as $key => $review)
<tr>
<td>{{ ($key+1) + ($reviews->currentPage() - 1)*$reviews->perPage() }}</td>
<td>
@if ($review->reviewed != null)
{{$review->reviewed->name}}
@endif
</td>
<td>
@if ($review->reviewer != null)
{{$review->reviewer->name}}
@endif
</td>
<td>
@if ($review->project != null)
{{$review->project->name}}
@endif
</td>
<td>
<span class="rating rating-sm">
{{ renderStarRating($review->rating) }}
</span>
</td>
<td>{{ $review->review }}</td>
<td class="text-right">
</td>
</tr>
@endforeach
</div>
</div>
</div>
</section>
@endif
@endsection
`
Yardımcı olabilirseniz sevinirim. Şimdiden teşekkürler, kolaylıklar...