如何获取数组的值?

How can I get the values of an array?

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

错误信息:

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)}} 内容被打印出来。明确地说,我无法访问标题或消息属性

我做错了什么?

$message 不是一个对象,但您正在访问它作为一个对象。它是一个数组,正如您在控制器中定义的那样 ($message = [];),因此您需要这样访问它。

所以,应该是这样的,

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

因此,错误:

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

完全有效。

阅读Material

array

object

编辑#1

关于您的新错误,

Illegal string offset 'title' (View:.....

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