尝试在Laravel 5.2中连接两个表时出错,搜索查询

时间:2018-05-26 20:50:44

标签: php mysql laravel

我想要做的是,通过将两个表连接在一起来组合搜索查询。我有一个非常简单的虚构的房地产网站,用户可以使用多个选项搜索列表,例如按城市搜索。我设置它的方式是我有一个visibility模型和表,其中包含一个城市列表和一个列表模型,控制器和表。

使用这些字段City city设置id表格。对于name表格,listings字段与city_id表格中的id字段相关联。在我的主页上,我有一个用户在城市中键入的选项,结果将使用上面的表格发送到结果页面,其中包含该城市的所有或任何列表。这就是我遇到问题的地方。

这是我运行查询时遇到的错误:

city

这是主页上表单的代码:

Trying to get property of non-object

这是执行查询的控制器(index.blade.php <form action="/search" method="GET" role="search"> {{ csrf_field() }} <div class="form-wrapper"> <input type="text" class="search-query" name="q" placeholder="Search citys" autocomplete="off"> </div> <button type="submit" class="btn btn-success">SEARCH</button> </form>

listingcontroller

我的清单模型:

public function listingsresults()
    {

      $q = Input::get ( 'q' );
      $listing = Listing::join('cities', 'listings.city_id', '=', 'cities.id')
                         ->select('listings.city_id', 'cities.name')
                         ->where ( 'name', 'LIKE', '%' . $q . '%' )
                         ->paginate(8);

      if (count ( $listing ) > 0)
        return view ( 'front-end/listingsresults' )->withDetails ( $listing )->withQuery ( $q );
      else
        return view ( 'front-end/listingsresults' )->withMessage ( 'No Details found. Try to search again !' );


    }

我的城市模型:

class Listing extends Model
{

    //
      protected $fillable = [

        'street',
        'city_id',
        'state_id',
        'price',
        'beds',
        'baths',
        'sqft',
        'descrip',
        'category_id',
        'user_id',
        'state_id',
        'fullpic_id',
        'extrapicone_id',
        'extrapictwo_id',
        'extrapicthree_id',
        'extrapicfour_id',
        '',

      ];

      // protected $primaryKey = 'id';

      public function user(){

          return $this->belongsTo('App\User');

      }

      public function state(){

          return $this->belongsTo('App\State');

      }

      public function city(){

          return $this->belongsTo('App\City');

      }

      public function category(){

        return $this->belongsTo('App\Category');

      }

      public function fullpic(){

        return $this->belongsTo('App\PhotoListing');

      }

}

有关我为什么会收到此错误的任何想法?我不确定是不是因为我没有正确构建我的查询。这也是构建我所要求的模型,控制器和视图的最佳方式,因为我仍然试图掌握Laravel和MVC。

0 个答案:

没有答案