Valonix
@Valonix
Back end / Front end developer

Laravel ошибка 500?

Только начал изучать фреймворк. Курю доки. Не могу понять что делаю не так, два часа уже мучаюсь.
Есть табличка post, есть модель Post
<?php

namespace App\Models\Post;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'post';
}


Есть контроллер
<?php

namespace App\Http\PostController;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Models\Post;

class PostController extends Controller
{
    /**
     * Display a listing of the posts.
     *
     * @return Response
     */
    public function index()
    {
        $posts = Post::all();
        return view('post.index', ['posts' => $posts]);
    }

}


есть соответствено вьюха в папке ресурсы.пост.индекс.
в роутах
Route::get('posts', ['as' => 'posts', 'uses' => 'PostController@index']);

Причем пхп сторм пишет тут наведя на эту строку $posts = Post::all(); ->
$posts = Post::all(); undefined class. Как так? неймспейсы в норме же. Тоже самое пытаюсь в админ контроллере проделать
use App\Models\Post;

public function index() {
   $posts = Post::find();
    return view('home' => [$posts] => $posts);
}

скрин админконтроллера 78572cd241f64ac6a94180ac81761d36.png
Не могу понять, это я в неймспейсах чето напутал или что то не так делаю.
Версия лары 5.1
Модель Post находится в папке Models
Контроллер в Http/Controllers
  • Вопрос задан
  • 1049 просмотров
Решения вопроса 1
Denormalization
@Denormalization
>namespace App\Http\PostController
>namespace App\Models\Post

В namespace не нужно указывать имя класса. Просто:
namespace App\Http\Controllers;
namespace App\Models;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы