如何获取数组的值?
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
编辑#1
关于您的新错误,
Illegal string offset 'title' (View:.....
根据我的评论和您的更新,您使用的是数字键,但数组已定义为关联数组。这次请再次阅读上面的内容,注意我是如何访问数组中的值的。
我正在尝试从视图访问数组的属性。控制器正在将数组传递给该视图。由于某种原因,我无法访问数组属性。
错误信息:
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
编辑#1
关于您的新错误,
Illegal string offset 'title' (View:.....
根据我的评论和您的更新,您使用的是数字键,但数组已定义为关联数组。这次请再次阅读上面的内容,注意我是如何访问数组中的值的。