我正在尝试从视图中访问数组的属性。控制器将数组传递给该视图。由于某种原因,我无法访问数组属性。
错误讯息:
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)}}
打印出内容。要清楚,我无法访问标题或消息属性
我做错了什么?
答案 0 :(得分:4)
$message
不是对象,但您将其作为一个对象访问。它是一个数组,因为您已在控制器($message = [];
)中对其进行了定义,因此您需要以此方式访问它。
所以,它应该是这样的,
<div class="card-header">{{ $message['title'] }}</div>
<div class="card-body">
{{ $message['message'] }}
</div>
因此,错误:
尝试获取非对象的属性“消息”(查看:/path/to/file/message.blade.php)
完全有效。
阅读材料
编辑#1
关于您的新错误,
非法字符串偏移'标题'(查看:.....
根据我的评论和更新,您使用的是数字键,但数组已被定义为关联数组。请注意上面的这一次,注意我是如何从数组中访问值的。