0

ERROR: Trying to get property 'title' of non-object (View: C:\xampp\htdocs\core\resources\views\user\signal-all.blade.php)

Dear, help me please, I can't find the error, it was working fine.

signal-all.blade.php

    @extends('layouts.user') 
    @section('content')
    <div class="page-body">
        <div class="row">
            <div class="col-sm-12">
                <div class="card">
                    <div class="card-header">
                        <h5>Historial - Ideas de Trading</h5>
                        <div class="card-header-right">
                            <ul class="list-unstyled card-option">
                                <li><i class="fa fa-chevron-left"></i></li>
                                <li><i class="fa fa-window-maximize full-card"></i></li>
                                <li><i class="fa fa-minus minimize-card"></i></li>
                                <li><i class="fa fa-times close-card"></i></li>
                            </ul>
                        </div>
                    </div>
                    <div class="card-block">

                        <div class="table-responsive">
                            <table class="table table-striped table-bordered table-hover" id="sample_1">
                                <thead>
                                <tr>
                                    <th>#</th>
                                    <th>Fecha</th>
                                    <th>Titulo</th>
                                    <th>Mercado - Par - Tipo</th>
                                    <th>TF - Estado</th>
                                    <th>Acción</th>
                                </tr>
                                </thead>

                                <tbody>
                                @php $p = 0 @endphp 
                                @if (\Illuminate\Support\Facades\Auth::user()->expire_time != 1 and \Carbon\Carbon::parse(\Illuminate\Support\Facades\Auth::user()->expire_time)->isPast())
                                    <tr>
                                        <td colspan="7"><h6 class="text-center">Su plan esta expirado, actualice su plan <a href="{{ route('user-upgrade-plan') }}" class="btn text-white btn-primary font-weight-bold text-uppercase btn-min-width">Actualizar Plan</a></h6></td>
                                    </tr>
                                    
                                @elseif (\Illuminate\Support\Facades\Auth::user()->plan_status == 0)
                                    <tr>
                                        <td colspan="7"><h6 class="text-center">Tablero de señales desactivado. <a href="{{ route('chose-payment-method') }}" class="btn text-white btn-warning font-weight-bold text-uppercase btn-min-width">PAGO PENDIENTE</a></h6></td>
                                    </tr>
                                @else
                                @php $p = 0 @endphp
                                    @foreach($signal as $k => $p)
                                        <tr>
                                            <td>{{ $k + $signal->firstItem() }}</td>
                                            <td>{{\Carbon\Carbon::parse($p->created_at)->format('d/m/Y - h:i:s A')}}</td>
                                            <td>{{ $p->signal->title }}</td>
                                            <td>{{ $p->signal->asset->name }} - {{ $p->signal->symbol->name }} - {{ $p->signal->type->name }}</td>
                                            <td>{{ $p->signal->frame->name }} - {{ $p->signal->status->name }}</td>
                                            <td>
                                                <a href="{{ route('user-signal-view',$p->signal->custom) }}" class="btn btn-primary bold uppercase btn-mini" title="Ver"><i class="fa fa-eye"></i> Ver</a>
                                            </td>
                                        </tr>
                                    @endforeach
                                @endif

                                </tbody>
                            </table>
                        </div>
                        @if ($p)
                            {{$signal->links('basic.pagination')}}
                        @endif
                    </div>
                </div>
            </div>
        </div>
    </div>
    @endsection

I also add layouts.user.php

@php
            $planId = Auth::user()->plan_id;
            $allSignal = App\SignalPlan::wherePlan_id($planId)->count();
        @endphp
        <div class="pcoded-main-container">
            <div class="pcoded-wrapper">
                <nav class="pcoded-navbar">
                    <div class="sidebar_toggle"><a href="#"><i class="icon-close icons"></i></a></div>
                    <div class="pcoded-inner-navbar main-menu">
                        <div class="pcoded-navigation-label">Panel de Control</div>
                        <ul class="pcoded-item pcoded-left-item">
                            <li class="{{ Request::is('user-dashboard') ? 'active' : '' }}">
                                <a href="{{ route('user-dashboard') }}">
                                    <span class="pcoded-micon"><i class="ti-home"></i><b>D</b></span>
                                    <span class="pcoded-mtext">Inicio</span>
                                    <span class="pcoded-mcaret"></span>
                                </a>
                            </li>
                        </ul>
                        <div class="pcoded-navigation-label">Ideas de Comercio</div>
                        <ul class="pcoded-item pcoded-left-item">

                            <li class="{{ Request::is('user/all-signal') ? 'active' : '' }}">
                                <a href="{{ route('user-all-signal') }}">
                                    <span class="pcoded-micon"><i class="ti-stats-up"></i><b>D</b></span>
                                    <span class="pcoded-mtext">Señales</span>
                                    <span class="pcoded-badge label label-primary ">{{ $allSignal }}</span>
                                    <span class="pcoded-mcaret"></span>
                                </a>
                            </li>
                        </ul>
                        <div class="pcoded-navigation-label">Administrar Ganancias</div>
                        <ul class="pcoded-item pcoded-left-item">
                            <li class="">
                                <a href="{!! route('logout') !!}" onclick="event.preventDefault();document.getElementById('logout-form').submit();">
                                    <span class="pcoded-micon"><i class="ti-share-alt"></i><b>D</b></span>
                                    <span class="pcoded-mtext">Salir</span>
                                    <span class="pcoded-mcaret"></span>
                                </a>
                                <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
                                    {{ csrf_field() }}
                                </form>
                            </li>
                        </ul>

                    </div>
                </nav>

                <div class="pcoded-content">
                    <div class="pcoded-inner-content">
                        <div class="main-body">
                            <div class="page-wrapper">

                                @if($errors->any())
                                    @foreach ($errors->all() as $error)
                                        <div class="alert alert-warning icons-alert">
                                            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                                                <i class="icofont icofont-close-line-circled"></i>
                                            </button>
                                            <p>{!!  $error !!}</p>
                                        </div>
                                    @endforeach
                                @endif

                                @yield('content')


                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
@if(Auth::user()->plan_status == 1 and Auth::user()->plan->telegram_status == 1)
{!! $basic->chat !!}
@endif
<script>
    @if(Session::has('message'))
    var type = "{{ Session::get('type', 'info') }}";
    switch(type){
        case 'info':
            toastr.info("{{ Session::get('message') }}");
            break;
        case 'warning':
            toastr.warning("{{ Session::get('message') }}");
            break;
        case 'success':
            toastr.success("{{ Session::get('message') }}");
            break;
        case 'error':
            toastr.error("{{ Session::get('message') }}");
            break;
    }
    @endif
</script>

@yield('scripts')

Controller

public function AllSignal()
    {
        $data['page_title'] = 'All Signal';
        $data['signal'] = SignalPlan::wherePlan_id(Auth::user()->plan_id)->orderBy('id','desc')->paginate(10);

        return view('user.signal-all',$data);
    }

when I try to execute it throws ERROR: Trying to get property 'title' of non-object

and use plan_status == 1 It works perfect

1 Answers1

1

The syntax of foreach($signal as $k => $p) means, for each element in the array of $signal as a key value pair, which means $p already represents a single $signal object from the array, and $k is the array index. Within a single object of $singal, you have the property title. In order to refer to that attribute, you just need to do $p->title. If you are unsure, you could perform a dd($signal) or a dd($p) somewhere on your blade to verify what it contains

Jacky.S
  • 364
  • 5
  • 17