如何获取数组的值?

时间:2018-04-27 22:39:20

标签: php laravel blade

我正在尝试从视图中访问数组的属性。控制器将数组传递给该视图。由于某种原因,我无法访问数组属性。

错误讯息:

Trying to get property 'message' of non-object (View: /path/to/file/message.blade.php)

查看代码+发生错误的位置:

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">


            <div class="card">
                <div class="card-header">{{$message->title}}</div>

                <div class="card-body">
                    {{$message->message}}
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

返回上述视图的控制器代码:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Auth;
use App\User;

class becomeorganiser extends Controller
{
    public function becomeorganiser(){
      $user = Auth::user();
      $user->organiser = 1;
      $user->save();
      $message = [];
      $message['title'] = 'Success!';
      $message['message'] = 'You are now an event organiser<br>You now have access the oragnisers control panel in your navigation bar!';

      return view('message', $message);
    }
}

如果我{{print_r($message)}}打印出内容。要清楚,我无法访问标题或消息属性

我做错了什么?

1 个答案:

答案 0 :(得分:4)

$message不是对象,但您将其作为一个对象访问。它是一个数组,因为您已在控制器($message = [];)中对其进行了定义,因此您需要以此方式访问它。

所以,它应该是这样的,

<div class="card-header">{{ $message['title'] }}</div>    
<div class="card-body">
      {{ $message['message'] }}
</div>

因此,错误:

  

尝试获取非对象的属性“消息”(查看:/path/to/file/message.blade.php)

完全有效。

阅读材料

array

object

编辑#1

关于您的新错误,

  

非法字符串偏移'标题'(查看:.....

根据我的评论和更新,您使用的是数字键,但数组已被定义为关联数组。请注意上面的这一次,注意我是如何从数组中访问值的。