Как я могу получить значения массива? - PullRequest
0 голосов
/ 28 апреля 2018

Я пытаюсь получить доступ к свойствам массива из представления. Контроллер передает массив в это представление. По какой-то причине я не могу получить доступ к свойствам массива.

Сообщение об ошибке:

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 голосов
/ 28 апреля 2018

$message не является объектом, но вы обращаетесь к нему как к одному. Это массив, как вы определили его как таковой в вашем контроллере ($message = [];), поэтому вам необходимо получить к нему доступ как таковой.

Итак, так и должно быть,

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

Следовательно, ошибка:

Попытка получить свойство 'message' необъекта (View: /path/to/file/message.blade.php)

полностью действителен.

Материал для чтения

array

object

Редактировать # 1

Относительно вашей новой ошибки,

Недопустимое смещение строки 'title' (Просмотр: .....

Согласно моему комментарию и вашему обновлению, вы используете цифровые клавиши, но массив был определен как ассоциативный массив. Пожалуйста, прочитайте выше снова на этот раз, заметив, как я получаю доступ к значениям из массива.

...