<?php
class User extends Eloquent {

    public function tickets()
    {
        return $this->hasMany('Tickets')

    }
}

class Tickets extends Eloquent {

    public function User()
    {
        return $this->belongTo('User')

    }
}


//and how to update a Ticket that belongs To User?


// and this dosen't work...Who can tell me the reason ,thanks !
$ticket = User::find(1)->tickets()->where('type','sometype')->get();
$ticket.update(array('status'   =>    0));
.
有帮助吗?

解决方案

update()查询在官方文档

User::find(1)->tickets()->where('type','sometype')->update(array('status' => 0));
.

我怀疑你拥有的问题是 get()`query 正在返回多个记录。为了让您的查询工作,您需要将返回的值视为集合如果记录,然后单独迭代并在每个记录上运行。

$tickets = User::find(1)->tickets()->where('type','sometype')->get();
foreach ($tickets as $ticket) {
    $ticket->update(array('status' => 0));
}
.

请注意,用于调用ELOQUENT方法的正确语法需要前面的箭头生成弧度缩略码 - not 一个点(->)。

$record.update(array('foo' => 'bar'));   # Incorrect
$record->update(array('foo' => 'bar')); # CORRECT!
.

更新

模型名称应始终是奇异 not 复数。因此,.模型应定义如下:

class Ticket extends Eloquent { // `Ticket`, not `Tickets`
    public function User()
    {
        return $this->belongTo('User')

    }
}
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top