index.blade.php
@php
$p = [];
foreach($p->genres as $genre){
$genres[] = $genre->genres;
}
$genre = implode(",", $genres);
@endphp
<span>{{$genre}}</span>
控制器
public function index()
{
$series = Series::all();
return view('admin/series/index',['series' => $series]);
}
Genres.php模型
class Genres extends Model
{
protected $primarykey= 'id';
protected $fillable = ['genres'];
public function series()
{
return $this->belongsToMany(Series::class);
}
}
Model Series.php
class Series extends Model
{
protected $table = 'series';
protected $primarykey='id';
protected $fillable = ['title','country','japanese','year','synonyms','trailer','image','network','rating','duration','genres','aired','directors','screenwriters','score','type','episode','synopsis'];
public function genres(){
return $this->belongsToMany(Genres::class);
}
}
我想使用多个表关系显示来自不同数据库的数据,但是数据仍然是一个编译数组以显示它。
和编译我问了一个朋友。有人告诉我使用类似index.blade.php
中的代码。然后返回
ErrorException(E_ERROR)尝试获取不是对象的属性
答案 0 :(得分:1)
您正在通过控制器设置series
,因此必须先在视图内循环浏览系列。
@foreach($series as $s){
// then your code should be take place.
@php
$genres = [];
foreach($s->genres as $genre){
$genres[] = $genre->genres;
}
$genre = implode(",", $genres);
@endphp
<span>{{$genre}}</span>
@endforeach
答案 1 :(得分:0)
您正在使用-> 访问数组,而只能使用箭头访问该对象。要访问数组键,您必须使用 $ array ['key'] 方法。
数组和对象是两种不同的数据类型,因此要访问其内部数据,必须使用它们各自的方法。
答案 2 :(得分:0)
您正在循环错误的变量/集合。您需要进行一些更改才能使其正常运行。下面的代码应该可以解决您的问题。
@php
$p = [];
foreach($series as $ser){
foreach($ser->genres as $genre){
$p[] = $genre->genres;
}
}
$gen = implode(",", $p);
@endphp
<span>{{$gen}}</span>