Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel-雄辩的关系不适用于一对多关系_Php_Laravel_Laravel 5 - Fatal编程技术网

Php Laravel-雄辩的关系不适用于一对多关系

Php Laravel-雄辩的关系不适用于一对多关系,php,laravel,laravel-5,Php,Laravel,Laravel 5,我有两个一对多关系的模型。我想在blade中显示具有关系的数据 产品表 类别表 产品型号代码 类别模型代码 控制器代码 名称空间App\Http\Controllers use Illuminate\Http\Request; use App\productsModel; class productsController extends Controller { //code... public function products($category_id='') {

我有两个一对多关系的模型。我想在blade中显示具有关系的数据

产品表

类别表

产品型号代码

类别模型代码

控制器代码

名称空间App\Http\Controllers

use Illuminate\Http\Request;
use App\productsModel;
class productsController extends Controller
{
    //code...
    public function products($category_id='')
    {
        # code...
        $data["products"] = productsModel::where
                            ('cat_id',$category_id)
                            ->get();        
        $data["categories"] = productsModel::where
                            ('cat_id',$category_id)->first()->category;
        echo "<pre>";
        print_r($data);
        echo "</pre>";
    }
}
错误: Symfony\Component\Debug\Exception\FatalThroTableError
找不到类“APP\categoryModel”

似乎有时有APP,有时有APP,虽然PHP对类名不区分大小写,但您可能会使用操作系统Linux?就文件名而言,这是区分大小写的


我建议在任何地方都只使用App,您的错误消息清楚地表明:App。

您可以在模型文件中清楚地看到名称空间被写为名称空间App; 您在此处定义了应用程序文件夹的命名空间。因此,当您在任何地方使用此模型时,您需要按照定义的名称空间编写它。因此,App\categoryModel。 您的代码应如下所示:

public function category()
{
    return $this->belongsTo(abcModel::class,'cat_id');
}
另外,正如@alithedeveloper提到的,这也是一个真诚的请求,请遵循PSR标准编写代码

public function products()
    {
        return $this->hasMany(productsModel::class,'cat_id');
    }

首先,您需要查找用于编写代码的PSR标准以及如何命名classesAPP!=应用程序。命名空间不区分大小写。是的,在产品模型中将应用更改为应用后,它将正常工作。
namespace App;

use Illuminate\Database\Eloquent\Model;

class categoryModel extends Model
{
    //code...
    protected $table      = 'categories';
    protected $primaryKey = 'cat_id';

    // One Category Has Many Products

    public function products()
    {
        # code...
        return $this->hasMany('App\productsModel','cat_id','pro_id');
    }
}
use Illuminate\Http\Request;
use App\productsModel;
class productsController extends Controller
{
    //code...
    public function products($category_id='')
    {
        # code...
        $data["products"] = productsModel::where
                            ('cat_id',$category_id)
                            ->get();        
        $data["categories"] = productsModel::where
                            ('cat_id',$category_id)->first()->category;
        echo "<pre>";
        print_r($data);
        echo "</pre>";
    }
}
public function category()
{
    # code...
    return $this->belongsTo('App\categoryModel','cat_id');
}
public function category()
{
    return $this->belongsTo(abcModel::class,'cat_id');
}
public function products()
    {
        return $this->hasMany(productsModel::class,'cat_id');
    }