Laravel有未定义的常量'app\app\projects。



我创建了一个名为"公司和项目"的模型,我需要显示公司下的项目。该公司显示良好,但是当我向模型添加项目关系时,它显示错误。我是拉拉维尔的新手。

未定义的常量"应用\应用\项目"(查看: C:\xampp\htdocs\testdrive\resources\views\companies\show.blade.php( C:\xampp\htdocs\testdrive\app\company.php

use IlluminateDatabaseEloquentModel;
class company extends Model
{
    protected $fillable = [
        'name',
        'description',
        'user_id'
    ];
    public function user()
    {
        return $this->belongsTo(AppUser);
    }
    public function projects()
    {
        return $this->hasMany(Appprojects);
    }
}

秀刀锋.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('AppUser');
}
public function projects()
{
    return $this->hasMany('Appprojects');
}
模型中

缺少class关键字

  class company extends Model
{
    //
    protected $fillable=[
        'name',
        'description',
        'user_id'
    ];
public function user()
{
    return $this->belongsTo(AppUser::class);
}
public function projects()
{
    return $this->hasMany(Appprojects::class);
}
}

希望这有帮助

传递

模型的类或问题中的命名空间

public function user()
{
  return $this->belongsTo(AppUser::class); //or $this->belongsTo('AppUser');
}
public function projects()
{
  return $this->hasMany(AppProject::class);
}

除了如上所述使用引号来引用模型。可能还需要定义类的命名空间。

旁注:使用PascalCase作为类名也是一种Laravel命名约定(即。公司,湿骆驼,FooBar类(

namespace AppCompany;
use IlluminateDatabaseEloquentModel;

class Company extends Model
{
    protected $fillable = [
        'name',
        'description',
        'user_id'
    ];
    public function user()
    {
        return $this->belongsTo('AppUser');
    }
    public function projects()
    {
        return $this->hasMany('AppProjects');
    }
}

使用 '' this 调用模型。

更正语法为:

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

最新更新