目前,我正在一家摄影网站上工作,但是页面显示该相册中的所有相册和图片的页面出现问题。我总是会出错
找不到“照片”类(查看:/var/www/photography.website/resources/views/album/index.blade.php)
尝试访问页面时。
以下是视图,控制器和模型;
索引视图:
@extends('layout.main')
@section('title')
<title>Albums</title>
@endsection
@section('content')
<div class="content">
@if(count($albums)==0)
<p>Nothing here yet, come back later!</p>
@else
@foreach($albums as $album)
<div class="album">
<h3>{{$album->name}}</h3>
@foreach($album->photos()->getEager() as $photo)
<img src="/public/thumb-{{$photo->id->toString()}}.jpeg" class="">
@endforeach
</div>
</div>
@endforeach
@endif
@endsection
相册控制器(摘要)
<?php
namespace App\Http\Controllers;
use App\Photo;
use App\Album;
use Illuminate\Http\Request;
class AlbumController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$albums = Album::all();
return view('album.index')->with(compact($albums));
}
}
相册模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Album extends Model
{
protected $fillable = ['name','cover'];
public function photos() {
return $this->hasMany('Photo');
}
}
照片模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Photo extends Model
{
public $incrementing = false;
protected $fillable = ['id','album_id','title'];
}
答案 0 :(得分:1)
您在关系中使用的是班级的不合格名称。通过这样的字符串引用类时,需要使用类的全名。
应用程序中没有名为Photo
的类,但是有名为App\Photo
的类。
public function photos() {
return $this->hasMany('App\Photo');
// but probably almost always better to use the class constant
return $this->hasMany(Photo::class);
// 'App\Photo'
}
Photo
指的是当前命名空间App
中的类,因为没有名为Photo
的名称的别名。