Php 如何获取数组的值?
我试图从视图访问数组的属性。控制器正在将数组传递给该视图。由于某些原因,我无法访问数组属性 错误消息:Php 如何获取数组的值?,php,laravel,blade,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
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
@extends('layouts.app'))
@节(“内容”)
{{$message->title}
{{$message->message}
@端部
返回上述视图的控制器代码:
<?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);
}
}
$message
不是一个对象,但您正在作为一个对象访问它。它是一个数组,正如您在控制器中定义的那样($message=[];
),因此您需要访问它
所以应该是这样,
<div class="card-header">{{ $message['title'] }}</div>
<div class="card-body">
{{ $message['message'] }}
</div>
{{$message['title']}
{{$message['message']}
因此,错误是:
试图获取非对象的属性“message”(视图:/path/to/file/message.blade.php)
这是完全正确的
阅读材料
编辑#1
关于你的新错误
非法字符串偏移量“title”(视图:
根据我的评论和您的更新,您正在使用数字键,但该数组已被定义为关联数组。请再次阅读上面的内容,注意我是如何从数组中访问值的。$message
不是一个对象,但您是作为一个对象访问它的。它是一个数组,正如您在控件中定义的那样ller($message=[];
),因此您需要这样访问它
所以应该是这样,
<div class="card-header">{{ $message['title'] }}</div>
<div class="card-body">
{{ $message['message'] }}
</div>
{{$message['title']}
{{$message['message']}
因此,错误是:
试图获取非对象的属性“message”(视图:/path/to/file/message.blade.php)
这是完全正确的
阅读材料
编辑#1
关于你的新错误
非法字符串偏移量“title”(视图:
根据我的评论和您的更新,您正在使用数字键,但数组已被定义为关联数组。请再次阅读上面的内容,注意我是如何从数组中访问值的。我不明白您的意思。您是在告诉我它需要是一个通过的对象而不是数组吗?@ICP否。我说的正是相反,看看你的代码,你传递了一个数组,然后试图将其作为对象访问。你需要将其作为数组访问。我说得通吗?好的,我现在明白了。但是,我通过使用你的代码“非法字符串偏移量”title(视图:…)得到了这个错误@ICP是您输入到$message
的唯一值,还是还有其他值?请尝试执行var\u dump
以查看值是否正确地输入到数组中。这三行就是它。消息在第一行之前不存在。我不明白您的意思。您是在告诉我它需要是一个对象吗帽子传递而不是数组?@ICP否。我说的恰恰相反,看看你的代码,你传递了一个数组,然后试图将其作为对象访问。你需要将其作为数组访问。我说得通吗?好的,我现在明白了。但是,我通过使用你的代码“非法字符串偏移量”标题(视图:…)得到了这个错误@ICP是您输入到$message
中的唯一值,还是还有其他值?请尝试执行var\u dump
以查看这些值是否正确地输入到数组中。这三行就是它。消息在第一行之前不存在。请不要根据您收到的答案编辑您的问题,否则会出现错误将message->title
发送到message[0]
,然后发送message['title']
基于Script46的答案。因此,在进行编辑之前,您的问题和答案没有任何意义。很抱歉,我试图让它工作,但忘记了将更改放回。我从未打算更改代码。我只是想添加我认为是问题代码的代码。请不要编辑您的qu根据您收到的答案,您将message->title
更改为message[0]
,然后更改为message['title']
基于Script46的答案。因此,在进行编辑之前,您的问题和答案没有任何意义。很抱歉,我试图让它正常工作,但忘记了将更改放回原处。我从未打算更改代码。我只是想添加一些我认为是问题代码的代码。