Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.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
Laravel 不';拉威尔的工作关系_Laravel_Eloquent_Relationships - Fatal编程技术网

Laravel 不';拉威尔的工作关系

Laravel 不';拉威尔的工作关系,laravel,eloquent,relationships,Laravel,Eloquent,Relationships,我有两种型号: class Announcement extends Eloquent { public function characteristics() { $this->hasMany('Characteristic'); } } 和特点: class Characteristic extends Eloquent { protected $guarded = array(); public static $rules = array(); pu

我有两种型号:

 class Announcement extends Eloquent {

    public function characteristics() {
    $this->hasMany('Characteristic');
    }

}
和特点:

class Characteristic extends Eloquent {
protected $guarded = array();

public static $rules = array();

public function announcement() {
    return $this->belongsTo('Announcement');
}
}
有两张桌子:

 CREATE TABLE characteristics (
   id integer PRIMARY KEY AUTOINCREMENT,
   title varchar DEFAULT('Количество'),
   announcement_id integer,
   count integer DEFAULT('0'),
   value_name varchar DEFAULT('шт.'),
   created_at datetime,
   updated_at datetime,
   deleted_at datetime
 );

这两种方法都添加了一些测试数据

这是我在routes.php中的代码:

 Route::get('/', function()
 {
    $test = Announcement::find(1)->characteristics();

    var_dump($test);
 });
但我总是得到零。我不明白,为什么…

试着这样做:

public function characteristics() {
    return $this->hasMany('Characteristic','announcement_id');
}

public function announcement() {
    return return $this->belongsTo('Announcement','announcement_id');
}
函数名是表的名称。第一个参数是模型名,第二个参数是匹配的键名

此外,为了获得良好的实践效果,请在公告id中添加外键

$table->foreign('announcement_id')->references('id')->on('announcements')->onDelete('cascade');
还可以尝试以下查询:

$test = Announcement::find(1)->characteristics; //not a method name

您必须返回$this->hasMany('Characteristic','announcement_id')


您错过了退货。

没有,我不工作。。。我已经将其添加到我的createcharacteristics_表迁移中:$table->foreign('announcement_id')->references('id')->on('announces')->onDelete('cascade');但是没有任何区别。当我编辑它时:$test=Announcement::find(1)->characteristics//不是方法名我遇到错误“对非对象调用成员函数getResults()”
$test = Announcement::find(1)->characteristics; //not a method name