首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义变量: ip_address (视图:

未定义变量: ip_address (视图:
EN

Stack Overflow用户
提问于 2015-01-02 12:29:23
回答 2查看 331关注 0票数 0

我得到了一个未声明的变量错误,但不知道为什么。

我正在尝试实现全文搜索,并有以下代码

在我的控制器里

代码语言:javascript
复制
<?php 

class PostsController extends BaseController {

public function postSearch(){
    $q = Input::get('query');

   $posts = ec2_instance::whereRaw("MATCH(instance_id,instance_type,availability_zone, status_checks,alarm_status, public_dns, key_name ) AGAINST(? IN BOOLEAN MODE)", array($q))->get();

         return View::make('ec2_instance', compact('posts'));
         $ip_address = public_ip::whereRaw("MATCH(ip_address ) AGAINST(? IN BOOLEAN MODE)", 

         array($q))->get();

         return View::make('ec2_instance', compact('ip_address'));
}

}
 ?>

在我看来

代码语言:javascript
复制
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Laravel PHP Framework</title>
<style>
    @import url(//fonts.googleapis.com/css?family=Raleway:700);

    body {
        margin:0;
        font-family:'Raleway', sans-serif;
        text-align:center;
        color: #999;
    }

    .welcome {
        width: 300px;
        height: 200px;
        position: absolute;
        left: 50%;
        top: 50%;
        margin-left: -150px;
        margin-top: -100px;
    }

    a, a:visited {
        text-decoration:none;
    }

    h1 {
        font-size: 32px;
        margin: 16px 0 0 0;
    }
</style>
代码语言:javascript
复制
<div class="search">
{{ Form::model(null, array('route' => array('search'))) }}
{{ Form::text('query', null, array( 'placeholder' => 'Search query...' )) }}
{{ Form::submit('Search') }}


@foreach($posts as $post)
<li>{{ $post->instance_id }}</li>
<li>{{ $post->instance_type }}</li>
<li>{{ $post->availability_zone }}</li>
<li>{{ $post->status_checks }}</li>
<li> {{ $post->alarm_status }}</li>
<li> {{ $post->public_dns }}</li>
<li>{{ $post->key_name }}</li>


 @endforeach





@foreach($ip_address as $pip)
<li>{{ $pip->ip_address }}</li>


 @endforeach


{{ Form::close() }}

我只是不能因为我的生活而看到错误

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-02 13:02:50

你不能有两个返回语句。

代码语言:javascript
复制
 return View::make('ec2_instance', compact('posts'));
 $ip_address = public_ip::whereRaw("MATCH(ip_address ) AGAINST(? IN BOOLEAN MODE)", 

 array($q))->get();
 return View::make('ec2_instance', compact('ip_address'));

试试这个:

代码语言:javascript
复制
public function postSearch(){
    $q = Input::get('query');

   $posts = ec2_instance::whereRaw("MATCH(instance_id,instance_type,availability_zone, status_checks,alarm_status, public_dns, key_name ) AGAINST(? IN BOOLEAN MODE)", array($q))->get();

   $ip_address = public_ip::whereRaw("MATCH(ip_address ) AGAINST(? IN BOOLEAN MODE)",         array($q))->get();

   return View::make('ec2_instance', compact('ip_address', 'posts'));



}
票数 1
EN

Stack Overflow用户

发布于 2015-01-02 18:21:56

postSearch方法中

代码语言:javascript
复制
public function postSearch()
{
    $q = Input::get('query');

   $posts = ec2_instance::whereRaw("MATCH(instance_id,instance_type,availability_zone, status_checks,alarm_status, public_dns, key_name ) AGAINST(? IN BOOLEAN MODE)", array($q))->get();

   return View::make('ec2_instance', compact('posts'));

   $ip_address = public_ip::whereRaw("MATCH(ip_address ) AGAINST(? IN BOOLEAN MODE)", 

   array($q))->get();

   return View::make('ec2_instance', compact('ip_address'));
}

您有两个返回状态

代码语言:javascript
复制
return View::make('ec2_instance', compact('posts'));
///...
return View::make('ec2_instance', compact('ip_address'));

第一次返回语句之后的代码从未运行,$ip_address变量从未发送到视图。有点像

代码语言:javascript
复制
public function postSearch()
{
    $q = Input::get('query');

   $posts = ec2_instance::whereRaw("MATCH(instance_id,instance_type,availability_zone, status_checks,alarm_status, public_dns, key_name ) AGAINST(? IN BOOLEAN MODE)", array($q))->get();

   //return View::make('ec2_instance', compact('posts'));

   $ip_address = public_ip::whereRaw("MATCH(ip_address ) AGAINST(? IN BOOLEAN MODE)", 

   array($q))->get();

   //return View::make('ec2_instance', compact('ip_address'));
   return View::make('ec2_instance', [
       'ip_address'=>$ip_address,
       'posts'=>$post
   ]);
}

可能是你想要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27742245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档