【问题标题】:I am confused in building query for laravel 5.3?我在为 laravel 5.3 构建查询时感到困惑?
【发布时间】:2016-10-22 22:51:31
【问题描述】:

我正在使用以下表格结构

resource_types 
      id
      type

communiction_links
      id
      inst_id
      rety_id
      cont_id
      value

 contacts
      id
      fname
      lname
      image
      park

我想在两个表中搜索模式并从两个表中检索数据。 如果模式是数字,那么我将在communication_links 中搜索,如果模式是字母,那么我将在fname 或lname 列中搜索联系人(其中communication_links 的cont_id 和联系人的id 应该相同)和(communication_links 的rety_id 和resource_type 的id 应该相同)

我写下了以下查询,但出现错误。

$parent_contact = \App\Contact::join('communication_links','contacts.id','=','communication_links.cont_id')
                                            >join('resource_types','resource_types.id','=','communication_links.rety_id')
                                            ->select('contacts.id','contacts.image','contacts.fname','contacts.lname','communication_links.value')
                                            ->where('resource_types.type','LIKE',"{mobile}%")
                                            ->where(function ($query) {
                                                $query->where('communication_links.value','LIKE',"{$request->search_string}%")
                                                        ->orWhere('contacts.fname','LIKE',"{$request->search_string}%")
                                                        ->orWhere('contacts.lname','LIKE',"{$request->search_string}%");
                                            })
                                            ->get();

【问题讨论】:

  • 错误是什么???
  • fetchDataController.php 第 50 行中的ErrorException:未定义变量:请求

标签: laravel laravel-5 laravel-5.3


【解决方案1】:

您收到此错误的原因是$request 不存在于闭包的范围内。每当你有一个闭包并且你想使用一个存在于它之外的变量时,你必须使用 use 将它传递给闭包。

改变:

->where(function ($query) {

->where(function ($query) use($request) {

希望这会有所帮助!

【讨论】:

  • 现在我得到“未找到联系人”但联系人在那里。维护表之间的关系是否有错误?
  • 你所有的表名都正确吗?联系表是contact 还是contacts?此外,如果您回到您有类似查询的其他问题,我可以尝试帮助您解决这个问题,并避免您围绕该问题创建多个问题。
  • 好的,那你能把错误复制到你的问题中吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多