关系密切

时间:2018-01-20 09:47:21

标签: laravel eloquent

我有两个型号,Product& Pdetail,一切都运行良好,hasMany和belongsTo也工作,我可以通过修补关系检查和创建userdetail记录但是当我把我的模型放在app \ Models文件夹中我无法得到我的模型之间的关系,我在所有{models} .php中将我的名称空间更改为App \ Models。我也检查了修补程序,无法在修补程序或控制器中获得hasMany关系,例如修补程序

$product=App\Product::find (3);
$pdetail= new App\Pdetail;
$pdetail->body='some text about it';
$product->pdetail(s)->save($pdetail);    //(s)for hasOne or hasMany based on models

这很好用 但改变位置后:

$product=App\models\Product::find (3);
$pdetail= new App\Models\Pdetail;
$pdetail->body='Some text about it';
$product->pdetail(s)->save($pdetail);

返回'坏方法调用', 我也改变了模型文件中的名称空间(名称空间App \ Mpdels) 有人可以帮忙吗? 我的product.php模型:

    namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Product extends Model
{
    //
    public function pdetail ()
    {
        return $this->hasOne('App\Models\Pdetail');
    }

和Pdetail.php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Pdetail extends Model
{
    //
    public function product ()
    {
        return $this->belongsTO('App\Models\Product');
    }
}

in tinker

  
    
      

$产物=应用\模型\产品::第一();           => App \ Models \ Product {#768                id:1,                名称:“HTC 10”,                价格:“11111”,                avatar:“index1.jpg”,                pcount:“7”,                cat_id:2,                created_at:“2018-01-19 20:14:54”,                updated_at:“2018-01-19 20:14:54”,              }       $ pdetail = new App \ Models \ Pdetail;           => App \ Models \ Pdetail {#755}       $产品 - > pdetail();           BadMethodCallException,带有消息'调用未定义的方法Illuminate \ Database \ Query \ Builder :: pdetail()'

    
  

1 个答案:

答案 0 :(得分:0)

感谢 @ Sohel0415 我将这些命令绑定了3-4次,问题解决了,不知道为什么在第一次使用时没有工作。

 composer dump-autoload
 cache:clear
 php artisan view:clear
 php artisan config:clear

非常感谢