【问题标题】:Laravel - Object of class stdClass could not be converted to intLaravel - 类 stdClass 的对象无法转换为 int
【发布时间】:2020-04-18 15:27:40
【问题描述】:

我搜索了我的汽车表。一切正常,直到我将其添加到我的视图中:

@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>&nbsp;&nbsp;&nbsp;&nbsp; 
      {{$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>&nbsp;&nbsp;&nbsp;&nbsp;{{$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);
    }

我做错了什么,这个错误是什么意思?我只需要在搜索到的汽车上显示喜欢的数量以及其他一些喜欢和关注的东西。 这是我来自CarsControllerajaxRequest

/**
     * 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);
    }
}

【问题讨论】:

  • 问题可能来自hasLiked($car)。如果$car$cars的元素,就是stdClass。
  • @TsaiKoga 那我该怎么办?
  • @TsaiKoga 我认为这是个问题...

标签: php laravel search stdclass


【解决方案1】:

我想$car-&gt;likers() 返回关系实例,而不是实际的likers。尝试在这两个地方都使用$car-&gt;likers-&gt;count()

【讨论】:

  • {{$car-&gt;likers()-&gt;count()}} ovo nije u mom view kodu ?
  • 去掉括号{{ $car-&gt;likers-&gt;count() }}
  • 又出现同样的错误...我试过{{ $car-&gt;likers-&gt;count() }}
  • 它出现在哪一行?
  • 它显示了这个错误:Object of class stdClass could not be converted to int (View: C:\engineering\xampp\htdocs\carmarket\resources\views\search\cars.blade.php)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-21
  • 2020-03-16
  • 1970-01-01
  • 1970-01-01
  • 2021-05-28
  • 1970-01-01
相关资源
最近更新 更多