Попытка получить свойство 'cname' необъекта Laravel php 5.8 - PullRequest
0 голосов
/ 07 июня 2019

Я изучаю laravel 5.8 и создаю веб-сайт портала вакансий.

Мой вопрос: почему возникает эта ошибка? Я уже проверил свою таблицу, и, очевидно, у меня есть столбец cname (название компании) в таблице компании. А также у меня есть объект.

Ниже приведен мой код. Я очень рад, если кто-то мне поможет.

Этот код предназначен для идентификации пользователя, ищущего работу или работодателя. Я хотел бы зарегистрироваться в качестве соискателя работы.

это моя страница с ошибкой.

app.blade.php

<li class="nav-item dropdown">
                                <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
                                    @if(Auth::user()->user_type='company')
                                        {{Auth::user()->company->cname}}
                                    @else
                                        {{Auth::user()->name}}
                                    @endif
                                    <span class="caret"></span>
                                </a>

user.php

use App\Profile;
use App\Company;

public function profile(){
        return $this->hasOne(Profile::class);
        }

    public function company(){
        return $this->hasOne(Company::class);
        }

web.php

Route::POST('employer/register', 'EmployerRegisterController@employerRegister')->name('emp.register');

Route::view('employer/register','auth.employer-register')->name('employer.register');

CompanyController.php

public function store(Request $request){

        $user_id = auth()->user()->id;
        Company::where('user_id',$user_id)->update([
            'address'=>request('address'),
            'phone'=>request('phone'),
            'website'=>request('website'),
            'slogan'=>request('slogan'),
            'description'=>request('description')
        ]);
        return redirect()->back()->with('message','Company Successfully Updated !');
    }

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

результаты, похоже, ничего не возвращают.из-за одного = вместо == попробуйте что-то вроде этого:

<li class="nav-item dropdown">
                                <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
                                    @if(Auth::user()->user_type=='company')
                                        {{Auth::user()->company->cname}}
                                    @else
                                        {{Auth::user()->name}}
                                    @endif
                                    <span class="caret"></span>
                                </a>
0 голосов
/ 07 июня 2019

Ошибка выброса, потому что Auth::user()->company равно Null.Используйте оператор Ternary при попытке получить атрибут отношения, подобный этому Auth::user()->company->cname ?? ''

<li class="nav-item dropdown">
    <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
        @if(Auth::user()->user_type == 'company')
            {{Auth::user()->company->cname ?? ''}}
        @else
            {{Auth::user()->name}}
        @endif
        <span class="caret"></span>
    </a>
</li>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...