Попытка получить имя пользователя, используя МОДЕЛИ, но получаю эту ошибку: Попытка получить свойство не-объекта

ОШИБКА: ErrorException in 814a6fb85b2cceb262c3a8191c08e42742940fc7.php line 223: Trying to get property of non-object (View: /var/www/html/m/TS/resources/views/d/show-details.blade.php)

На самом деле я пытаюсь получить имя пользователя, который сохранил результат в базе данных, т.е. TN has got user_id as a foreign key in the table поэтому мне нужно получить username От этого user_id с помощью models but I am getting this problemПопытка получить свойство необъектаwhen I try to get theusername`, связанный с идентификатором. Я не знаю, где я делаю это неправильно.

ОШИБКА, КОТОРУЮ Я ПОЛУЧАЮ ЗДЕСЬ value="{{$tn->users->username}}" Что показывает в заархивированном файле.

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

заранее спасибо

public function details($id) {

$d= $this->detail->showDetails($id);
$tn= TN::find($id);

// calling functions from Model
$n = $d->tN;
$o = $d->tO;

return view('details.show-details', compact('d','o', 'n', 'tn'));

}
foreach($n as $n)
<input style="font-size:10px;font-weight: bold; color:black; background:#59d864;" value="{{$tn->users->username}}" readonly>

Модель пользователя

<?php

namespace App;

use Illuminate\Foundation\Auth\User as Authenticatable;
use App\TN;
use App\TO;
use App\UserType;

class User extends Authenticatable
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'username', 'password',
];

/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];

public function tN() {
return $this->hasMany(TN::class);
}

public function tO() {
return $this->hasMany(TO::class);
}

public function userType() {
return $this->belongsTo(UserType::class);
}

}

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use App\D;
use App\TT;
use App\User;

class TO extends Model
{
protected $fillable = ['o', 'date'];

public function d() {
return $this->belongsTo(D::class);
}

public function tOType() {
return $this->belongsTo(TOType::class);
}

public function users() {
return $this->belongsTo(User::class);
}
}
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use App\Debtor;
use App\TracingType;
use App\User;

class TN extends Model
{
protected $fillable = ['r', 'date'];

public function d() {
return $this->belongsTo(D::class);
}

public function tType() {
return $this->belongsTo(TType::class);
}

public function users() {
return $this->belongsTo(User::class);
}

}

0

Решение

Здравствуйте, я разобрался с этой проблемой, но забыл опубликовать здесь, проблема была здесь

public function users() {
return $this->belongsTo(User::class);
}

Это должно быть public function user() скорее, чем users, Потому что это belongsTo в User класс, он должен быть единственного числа, а не множественного числа и для hasMany мы используем множественное число. Спасибо за вашу помощь, хотя … 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector