【问题标题】:Laravel 4 Advanced Search QueryLaravel 4 高级搜索查询
【发布时间】:2016-07-25 11:57:57
【问题描述】:

我创建了一个包含多个可选字段的搜索表单,但是当尝试将这些作为查询的一部分包含在控制器中时,它不会返回任何结果

$active = Input::get('active');
$field  = Input::get('field');
$value  = Input::get('value');

$claims = Claim::where($field, $value);

if($active != 'All')
{
    $claims->where('active', $active);
}

$claims->get();

return View::make('admin.search.results')->with('claims', $claims);

谁能指出我哪里出错了?

【问题讨论】:

  • 你可以试试这个作为一个原始的 SQL 查询,然后看看你是否得到结果?
  • 我尝试将第一行查询更改为:$claims = DB::table('claims')->where($field, $value);
  • 但是我只是得到一个 Trying to get property of non-object 错误
  • 我的意思是原始 SQL 查询,而不是 PHP。如果您有 phpMyAdmin 或 MySQL Workbench 之类的工具,请使用它进行选择查询并查看是否得到结果。
  • 我知道查询会返回结果,因为如果我将它们全部链接在一起,例如,它会返回结果。 $claims = Claim::where($field, $value)->get();

标签: php laravel laravel-4 eloquent


【解决方案1】:

试试这个:

$claims = Claim::where($field, $value);

if($active != 'All') {
    $claims = $claims->where('active', $active);
}

$claims = $claims->get();

【讨论】:

  • 这是一种工作......它返回一个不同的错误,即视图试图访问未定义的属性。
  • 如果我删除行 {{ $claim->lead_user->first_name.' '.$claim->lead_user->last_name }} 在我看来它有效
  • 这样构建查询时是否无法访问相关模型?
  • @user1105056 访问 Claim 模型的关系应该没有问题。
  • 啊,我把第一行改成了 DB::table('claims')->where($field, $value);玩它的时候。以上代码有效,谢谢!
猜你喜欢
  • 2018-10-21
  • 2015-06-09
  • 2014-06-08
  • 2015-01-14
  • 2018-08-01
  • 1970-01-01
  • 2015-04-17
  • 2016-03-27
  • 1970-01-01
相关资源
最近更新 更多