2017-09-07 45 views
1

我越来越想显示在Laravel视图时的一个错误:如何对象转换stdClass已经到阵列中的Laravel

“不能使用类型为stdClass的对象为数组(查看: C:\ XAMPP \ htdocs中\ mysite的\资源\意见\ CMS \ contactus.blade.php)”。

我的控制器:

public function contactus(){ 

    ContactUS::get_content(self::$data); 
    return view('cms.contactus', self::$data); 

} 

我的模型:

class ContactUS extends Model 
{ 

public $table = 'contactus'; 

public $fillable = ['name','email','message']; 

static public function get_content(&$data){ 


     $sql = "SELECT cu.*,name,email,message FROM contactus cu " 
      . "ORDER BY cu.created_at DESC "; 

     $data['contactusd'] = DB::select($sql); 

    } 

} 

我的观点:

@extends ('cms.cms_master') 
@section('cms_content') 
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main"> 
    <h1 class="page-header">Contact us form information</h1> 
    @if($contactusd) 
    <br><br> 
    <table class="table table-bordered"> 
     <thead> 
      <tr> 
       <th>Name</th> 
       <th>Email</th> 
       <th>Message</th> 
      </tr> 
     </thead> 
     @foreach($contactusd as $item) 
     <tr> 
      <td>{{ $item['name']}}</td> 
      <td> 
       <ul> 

        <li> Email: {{ $item['email']}}, Massage: {{$item['message'] }}</li> 
        @endforeach 
       </ul> 
      </td> 
      <td>{{ $item[created_at]}}</td> 
     </tr> 

    </table> 
    @else 
    <p style="font-size: 18px">No information...</p> 
    @endif 
</div> 

@endsection 
+1

那么,你可以使用它作为一个对象('$ item-> email'),或将其转换为数组'@foreach($ contactusd as(array)$ item)' – aynber

+1

可能重复[如何将对象转换为数组?](https:/ /stackoverflow.com/questions/2476876/how-do-i-convert-an-object-to-an-array) – aynber

+0

不,他是要求laravel,但是你应该更喜欢雄辩而不是原始查询。 –

回答

0

你有地狱很多错误的刀片文件

@if($contactusd) 
    <br><br> 
    <table class="table table-bordered"> 
     <thead> 
      <tr> 
       <th>Name</th> 
       <th>Email</th> 
       <th>Message</th> 
      </tr> 
     </thead> 
     @foreach($contactusd as $item) 
     <tr> 
      <td>{{ $item->name }}</td> 
      <td> 
       <ul> 

        <li> Email: {{ $item->email}}, Massage: {{$item->message }}</li> 

       </ul> 
      </td> 
      <td>{{ $item->created_at}}</td> 
     </tr> 
     @endforeach 
    </table> 
    @else 
    <p style="font-size: 18px">No information...</p> 
    @endif 

$contactusd = ContactUS::get_content(self::$data)->toArray(); 
return view('cms.contactus', $contactusd); 
0

试试这个..

$sql = "SELECT cu.*,name,email,message FROM contactus cu " 
      . "ORDER BY cu.created_at DESC "; 

$data['contactusd'] = DB::select($sql)->get()->toArray(); 
0

使用这样

$data = ContactUS::get_content(self::$data)->toArray(); 
return view('cms.contactus', $data); 
0

如果你得到的数据是性病类, 可以像这样写在页面中{{ $item->name }}

如果你得到的数据是STD类, 你可以这样写视图页{{$item['message']}}

背面写这样

$sql = "SELECT cu.*,name,email,message FROM contactus cu " 
      . "ORDER BY cu.created_at DESC "; 

$data['contactusd'] = DB::select($sql)->get()->toArray(); 
1

将对象转换成数组(这是你的问题)使用$array = (array) $object;

相关问题