在视图中找不到“照片”类别

时间:2018-07-30 03:22:22

标签: laravel

目前,我正在一家摄影网站上工作,但是页面显示该相册中的所有相册和图片的页面出现问题。我总是会出错

  

找不到“照片”类(查看:/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'];
}

1 个答案:

答案 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的名称的别名。