Laravel 有未定义的常量 'App\App\projects

Laravel Has Undefined Constant 'App\App\projects

我创建了一个名为公司和项目的模型,我需要显示公司下的项目。公司表现良好,但当我向模型添加项目关系时,它显示错误。我是 Laravel.

的新手

Undefined constant 'App\App\projects' (View: C:\xampp\htdocs\testdrive\resources\views\companies\show.blade.php) C:\xampp\htdocs\testdrive\app\company.php

型号

use Illuminate\Database\Eloquent\Model;

class company extends Model
{
    protected $fillable = [
        'name',
        'description',
        'user_id'
    ];

    public function user()
    {
        return $this->belongsTo(App\User);
    }

    public function projects()
    {
        return $this->hasMany(App\projects);
    }
}

show.blade.php

@extends('layouts.app')
@section('content')
    <div class="container">
        <!-- Jumbotron -->
        <div class="jumbotron">
            <h1>{{$company->name}}</h1>
            <p class="lead">{{$company->description}}</p>
        </div>

        <!-- Example row of columns -->
        <div class="row">
            @foreach($company->projects as $projects)
                <div class="col-lg-4">
                    <h2>{{$projects->name}}</h2>
                    <p class="text-danger">{{$projects->description}} </p>
                    <p>
                        <a class="btn btn-primary" href="/projects/{{$projects->id}}" role="button">View Project</a>
                    </p>

                </div>
            @endforeach
        </div>
    </div>
@endsection

你打错了!命名空间应该是字符串:

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

public function projects()
{
    return $this->hasMany('App\projects');
}

您的模型中缺少 class 关键字

  class company extends Model
{
    //
    protected $fillable=[
        'name',
        'description',
        'user_id'

    ];

public function user()
{
    return $this->belongsTo(App\User::class);
}

public function projects()
{
    return $this->hasMany(App\projects::class);
}

}

希望对您有所帮助

在问题中传递 class 模型或其命名空间

public function user()
{
  return $this->belongsTo(App\User::class); //or $this->belongsTo('App\User');
}

public function projects()
{
  return $this->hasMany(App\Project::class);
}

除了如上所述使用引号引用模型。 可能还需要定义 class.

的命名空间

旁注:对 class 名称(即公司、WetCamel、FooBarClass)使用 PascalCase 也是 Laravel 命名约定

namespace App\Company;

use Illuminate\Database\Eloquent\Model;


class Company extends Model
{
    protected $fillable = [
        'name',
        'description',
        'user_id'

    ];

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

    public function projects()
    {
        return $this->hasMany('App\Projects');
    }

}

使用''调用模型。

将语法更正为:

public function projects()
{
    return $this->hasMany('App\projects');
}