2015-01-02 1 views
0

Я получаю необъявленную переменную ошибку, но не могу понять, почемуНеопределенных переменные: ip_address (Вид:

Я пытаюсь реализовать полнотекстовый поиск и имеет следующий код

в моем контроллере

<?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')); 
} 

} 
?> 

на мой взгляд

<!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> 

<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() }} 

Я просто не могу за жизнь мне увидеть опечатку

+0

Можете ли вы поместить 'print_r ($ ip_address);' на ваш взгляд и сообщить нам, отображает ли он что-либо. – Darren

+0

Hi @Darren пробовал это, но, к сожалению, получал ту же ошибку –

ответ

1

Вы не можете иметь 2 возвращения заявления.

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')); 

Попробуйте это:

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')); 



} 
0

В вашем методе postSearch

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')); 
} 

Вы два возврата statments

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

Код после первого оператора возврата никогда не запускается, а переменная $ip_address никогда не отправляется в представление. Что-то вроде

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 
    ]); 
} 

, вероятно, то, что вы хотите.