Загрузка нескольких моделей из одного контроллера - PullRequest
0 голосов
/ 05 октября 2019

нужна помощь Laravel.
У меня есть 2 модели в другой папке

  1. app \ User
  2. app \ model \ Role

при отсутствии проблемя использовал в UsersController -> вызов app \ User или RolesController -> вызов app \ model \ Role

но когда я использовал обе модели на UsersController , app \ model \ Role не работала

==================== UsersController ======================

namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use app\User;
use app\model\Role as Role;
use DataTables;

class UserController extends Controller
{
    public function index(Request $request){
        $data['title_page'] = 'User';
        $data['roles']  = Role::all(); // this line show error 
        return view('admin/user', $data);
    }
}

======================== app \ model \ Role ===================

namespace App\model;

use Illuminate\Database\Eloquent\Model;

class Role extends Model
{
    protected $fillable = ['id','name'];

    protected $tables = 'roles';

    public function users(){
        return $this->belongsTo('App\User','role');
    }
}

======================== app \ User =======================

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;

    protected $table = "users";

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password','role', 'status'
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    public function roles(){
        return $this->hasOne('App\model\Role','id');
    }


}

Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR) Класс 'app \ model \ Role' не найден

1 Ответ

0 голосов
/ 05 октября 2019

Попробуйте с заглавной буквы «А» в «Приложении». Некоторые системы чувствительны к регистру. Так что use App\Model\Role в зависимости от названия вашей папки для модели. То есть, если ваша папка model в нижнем регистре, сопоставьте ее в операторе use.

Кроме того, здесь вам не нужно ключевое слово as, если нет конфликтов - вам может быть достаточно просто use App\Model\Role без as Role.

Еще один элемент, убедитесь, что класс Role действительно находится в папке модели и что ваше пространство имен находится в верхней части php-файла, правильно ссылаясь на приложение\ Пространство имен модели. Так что в вашем Role классе убедитесь, что заглавные буквы соответствуют вашему вызову использования -

<?php

namespace App\Model
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...