php - 我有这个雄辩的文件,但我收到未定义的变量
问题描述
我想从我的数据库中获取一个表,我有这些来自 eloquent laravel 的文件,但我不知道为什么我会收到 $user 未定义的变量。我非常需要你的帮助,因为我不知道该怎么做才能完成我的项目。我需要role_users 表,列user_id 和role_id。
编辑:这是我的名为“事件”的表 https://imgur.com/a/gcAzv4F
“if”函数应该像这样工作......
@if(...role_id == 1)
<i class="icon-user"></i>
@else
<i class="icon-trophy"></i>
角色.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Role extends Model
{
// protected $fillable = [
// 'name', 'display_name', 'description',
// ];
protected $table = "roles";
public function user()
{
return $this->belongsToMany('App\User','role_users','role_id','user_id');
}
}
我的观点
<ul class="list-inline">
<li style="font-style: normal !important">
@if( in_array("Organizations", $event->user->roles->pluck('role') )
<i class="fa fa-building-o"></i>
@else
<i class="icon-user"></i>
@endif
<a style="margin-left: 2px" href="{{ url('') }}/{{ $event->user->username }}">{{ $event->user->username }}</a></li>
<li style="font-style: normal !important"><i style="margin-right: 3px" class="icon-hotel-restaurant-183 u-line-icon-pro fa-"></i> <a href="{{ url('view-all-event') }}">Event</li>
<li style="font-style: normal !important"><i style="margin-right: 3px" class="icon-notebook fa-"></i> <a href="{{ url('topic') }}/{{ $event->category->category_url }}">{{ $event->category->category }}</a></li>
</ul>
@endforeach
In this case I receive this error:Undefined variable: user (View: /var/www/clients/client1/web2/web/resources/views/event/view_all_event.blade.php)
事件.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Event extends Model
{
protected $table = 'events';
public $timestamps = false;
protected $fillable = [
'user_id', 'subject','information','event_type_id','country','public','category_id','date','added','views','address','city','starts','ends','organizer','telephone','website','email','image_path'
];
public function category()
{
return $this->belongsTo('App\Category','category_id','id');
}
public function user()
{
// return $this->hasOne('App\Country','state_country_id','id');
return $this->belongsTo('App\User','user_id','id');
}
public function role()
{
return $this->belongsToMany('App\Role','role_users','user_id','role_id');
}
public function event_like()
{
return $this->hasMany('App\EventLike');
}
public function event_comment()
{
return $this->hasMany('App\EventComment');
}
public function event_type()
{
// return $this->hasOne('App\Country','state_country_id','id');
return $this->belongsTo('App\EventType','event_type_id','id');
}
public function country()
{
// return $this->hasOne('App\Country','state_country_id','id');
return $this->belongsTo('App\Country','country','id');
}
public function user_participant()
{
return $this->belongsToMany('App\User','events_participants','event_id','user_id');
}
public function participant()
{
return $this->belongsToMany('App\ParticipantType','events_participants','event_id','participant_type');
}
}
用户.php
<?php
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Collection;
class User extends Authenticatable
{
use SoftDeletes;
/**
* The attributes that are mass assignable.
*
* @var array
*/
// protected $fillable = [
// 'name', 'email', 'password',
// ];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
// protected $hidden = [
// 'password', 'remember_token',
// ];
public function comment()
{
return $this->hasMany('App\Comment');
}
public function country()
{
// return $this->hasOne('App\Country','state_country_id','id');
return $this->belongsTo('App\Country','country_id','id');
}
public function organization_type()
{
// return $this->hasOne('App\Country','state_country_id','id');
return $this->belongsTo('App\OrganizationType');
}
public function industry()
{
// return $this->hasOne('App\Country','state_country_id','id');
return $this->belongsTo('App\Industry');
}
public function career_path()
{
return $this->hasMany('App\CareerPath');
}
public function education()
{
return $this->hasMany('App\Education');
}
public function about()
{
return $this->hasOne('App\About');
}
public function portfolio()
{
return $this->hasOne('App\Portfolio');
}
public function language_skills_selected()
{
return $this->belongsToMany('App\LanguageSkill','language_skills_selected','user_id','language_skills');
}
public function offices_branch()
{
return $this->hasMany('App\OfficesBranch');
}
public function my_alert()
{
return $this->hasOne('App\MyAlert');
}
public function privancy_setting()
{
return $this->hasOne('App\PrivancySetting');
}
public function event()
{
return $this->hasMany('App\Event');
}
public function news()
{
return $this->hasMany('App\News');
}
public function opinion()
{
return $this->hasMany('App\Opinion');
}
public function career_solution()
{
return $this->hasMany('App\CareerSolution');
}
public function contact()
{
return $this->belongsToMany('App\User','contacts','contact_id','user_id');
}
public function user()
{
return $this->belongsToMany('App\User','contacts','user_id','contact_id');
}
public function invitation()
{
return $this->belongsToMany('App\User','invitations','inviter_id','target_id')->withPivot('accepted');
}
public function target()
{
return $this->belongsToMany('App\User','invitations','target_id','inviter_id','accepted')->withPivot('accepted');
}
public function mailbox()
{
return $this->belongsToMany('App\User','mailbox','sender_id','target_id')->withPivot('read','subject','message','date','id');
}
public function inbox()
{
return $this->belongsToMany('App\User','mailbox','target_id','sender_id')->withPivot('read','subject','message','date','id');
}
public function role()
{
return $this->belongsToMany('App\Role','role_users','user_id','role_id');
}
public function evnet_like()
{
return $this->hasMany('App\EventLike');
}
public function evnet_comment()
{
return $this->hasMany('App\EventComment');
}
public function news_like()
{
return $this->hasMany('App\NewsLike');
}
public function news_comment()
{
return $this->hasMany('App\NewsComment');
}
public function opinion_like()
{
return $this->hasMany('App\OpinionLike');
}
public function opinion_comment()
{
return $this->hasMany('App\OpinionComment');
}
public function event_participant()
{
return $this->belongsToMany('App\Event','events_participants','user_id','event_id');
}
public function participant()
{
return $this->belongsToMany('App\ParticipantType','events_participants','user_id','participant_type');
}
public function feed()
{
return $this->hasMany('App\Feed');
}
public function rss_article()
{
return $this->hasMany('App\RssArticle');
}
public static function customPaginate($currentPage,$items,$perPage)
{
//Get current page form url e.g. &page=6
// $currentPage = LengthAwarePaginator::resolveCurrentPage();
//Create a new Laravel collection from the array data
$collection = new Collection($items);
//Define how many items we want to be visible in each page
$perPage = $perPage;
//Slice the collection to get the items to display in current page
$currentPageSearchResults = $collection->slice(($currentPage * $perPage)- $perPage, $perPage)->all();
//Create our paginator and pass it to the view
$paginatedSearchResults = new LengthAwarePaginator($currentPageSearchResults, count($collection), $perPage);
return $paginatedSearchResults;
}
}
我猜 Event.php 是为我的页面( view-all-event )。
解决方案
利用
<li style="font-style: normal !important">
@if( in_array("Organizations", $event->user->roles->pluck('role') )
<i class="fa fa-building-o"></i>
@else
<i class="icon-user"></i>
@endif
</li>
要检查用户是否有Organizations
角色,如果您创建roles
了关联用户和角色的关系。
推荐阅读
- ruby-on-rails - 如何修复'Errno::ENOENT(没有这样的文件或目录@realpath_rec - /home/admin/project/spec/mailers)'Ruby on rails?
- ssl - NGINX 上的 SSL 终止
- c - 如何防止这种 pthread 同步内存踩踏?
- linux - 如何使用 sed 删除 HH:MM:SS.[sss] 的毫秒部分?
- laravel - 如何为 Heroku 应用创建 mailgun 域
- python - 如何访问熊猫中嵌套iterrow的外部for循环的索引?
- python - OutOfRangeError: RandomShuffleQueue '_1_shuffle_batch/random_shuffle_queue' 已关闭且元素不足(请求的 8 个,当前大小 7)
- selenoid - 是否可以在 Windows Server 2016 上将 Selenoid 作为服务运行
- javascript - 为什么我的浏览器会从 Express 加载 JSON 响应?
- powershell - 命令行中的“@”是什么意思?