У меня есть небольшой поиск по таблице машин. Все работает нормально, пока я не добавлю это к своему представлению:
@guest
<a href="/login" class="play-btn"><i class="icon-heart"></i></a>
@else
@if(auth()->user()->hasLiked($car))
<span class="auto-featured"><a id="like{{$car->id}}-bs3" style="cursor: pointer;"><i
id="like{{$car->id}}" class="icon-heart" style="color:white"></i></a>
{{$car->likers()->count()}}</span>
@else
<span class="auto-featured"><a id="like{{$car->id}}-bs3" style="cursor: pointer;"><i
id="like{{$car->id}}" class="icon-heart-o" style="color:white;font-family: 'Raleway', sans-serif;">
</i></a> {{$car->likers()->count()}}</span>
@endif
@endguest
После этого он показывает мне эту ошибку: Object of class stdClass could not be converted to int
. Я использую overtrue
для лайка, подписки и прочего. Это моя search()
функция:
public function search(Request $request){
$carQuery = DB::table('cars');
$cars = Car::all();
//$cars = Car::orderBy('placeni_status', 'desc')->get();
// standard where fields
foreach ($request->only(['marka', 'model']) as $term => $value) {
if (empty($value)) {
continue;
}
$carQuery->where($term, $value);
}
// gear is one of gears array values
if ($sigurnost = $request->get('sigurnost')) {
$carQuery->whereIn('sigurnost', $sigurnost);
}
// gear is one of gears array values
if ($karoserija = $request->get('karoserija')) {
$carQuery->where('karoserija', $karoserija);
}
// gear is one of gears array values
if ($gorivo = $request->get('gorivo')) {
$carQuery->where('gorivo', $gorivo);
}
if($lokacija = $request->get('lokacija')){
$carQuery->where($cars->user->city, $lokacija);
}
// between a price from/to the values set
if (
$from = $request->input('from')
&& $to = $request->input('to')
) {
$carQuery->whereBetween('cijena', [$from, $to]);
}
// between a price from/to the values set
if (
$fromm = $request->input('fromm')
&& $too = $request->input('too')
) {
$carQuery->whereBetween('kilometraza', [$fromm, $too]);
}
if (
$od = $request->input('od')
&& $do = $request->input('do')
) {
$carQuery->whereBetween('godiste', [$od, $do]);
}
$cars = $carQuery->orderBy('placeni_status', 'desc')->get();
return view('search.cars')->with('cars', $cars);
}
Что я делаю не так и что означает эта ошибка? Мне просто нужно показать на найденных машинах количество лайков и еще кое-что вроде фаворита и подписаться. Это моя ajaxRequest
из CarsController
:
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function ajaxRequestCars(Request $request){
$car = Car::find($request->id);
$response = auth()->user()->toggleLike($car);
//$response = auth()->user()->toggleFavorite($car);
return response()->json(['success'=>$response]);
}
А это моя Car.php
модель:
<?php
namespace App;
use Overtrue\LaravelFollow\Traits\CanBeLiked;
use Overtrue\LaravelFollow\Traits\CanBeBookmarked;
use Overtrue\LaravelFollow\Traits\CanBeFavorited;
use Overtrue\LaravelFollow\Traits\CanBeFollowed;
use Illuminate\Database\Eloquent\Model;
use App\User;
class Car extends Model
{
use CanBeLiked, CanBeBookmarked, CanBeFavorited, CanBeFollowed;
protected $table = "cars";
protected $primaryKey = "id";
protected $fillable = [
'naslov', 'marka', 'model', 'kubikaza', 'zamajac', 'karoserija', 'godiste', 'kilometraza', 'br_brzina_mjenjaca',
'gorivo', 'vlasnistvo', 'kilovata', 'konjska_snaga', 'emisiona_klasa', 'pogon', 'mjenjac', 'br_vrata', 'velicina_felni', 'posjeduje_gume',
'br_sjedista', 'str_volana', 'klima', 'boja_spolj', 'boja_unutrasnj', 'materijal_unutrasnj', 'registracija', 'ostecenje',
'zamjena', 'sigurnost', 'oprema', 'stanje', 'nacin_finansiranja', 'nacin_prodaje', 'cijena', 'vrsta_cijene', 'opis_oglasa', 'fotografije'
];
public function user(){
return $this->belongsTo(User::class);
}
public function vehicleinfo(){
return $this->hasMany(VehicleInfo::class);
}
public function ad(){
return $this->hasMany(Ad::class);
}
}