我不太确定我是否理解 associate 方法在 Laravel 中.我理解这个想法,但我似乎无法让它发挥作用.
I'm not quite sure if I understand the associate method in Laravel. I understand the idea, but I can't seem to get it to work.
使用这个(蒸馏)代码:
With this (distilled) code:
class User
{
public function customer()
{
return $this->hasOne('Customer');
}
}
class Customer
{
public function user()
{
return $this->belongsTo('User');
}
}
$user = new User($data);
$customer = new Customer($customerData);
$user->customer()->associate($customer);
当我尝试运行它时,我收到一个 Call to undefined method IlluminateDatabaseQueryBuilder::associate().
I get a Call to undefined method IlluminateDatabaseQueryBuilder::associate() when I try to run this.
据我所知,我完全按照文档中的说明进行操作.
From what I can read, I do it exactly as is stated in the docs.
我做错了什么?
我不得不承认,当我第一次开始使用 Laravel 时,我必须始终如一地参考文档的部分关系,甚至在某些情况下我不太对劲.
I have to admit that when I first started using Laravel the relationships where the part that I had to consistently refer back to the docs for and even then in some cases I didn't quite get it right.
为了帮助您,associate() 用于更新 belongsTo() 关系.查看您的代码,从 $user->customer() 返回的类是一个 hasOne 关系类,上面没有关联方法.
To help you along, associate() is used to update a belongsTo() relationship. Looking at your code, the returned class from $user->customer() is a hasOne relationship class and will not have the associate method on it.
如果你反过来做.
$user = new User($data);
$customer = new Customer($customerData);
$customer->user()->associate($user);
$customer->save();
它会像 $customer->user() 是 belongsTo 关系一样工作.
It would work as $customer->user() is a belongsTo relationship.
反过来,您需要先保存用户模型,然后将客户模型保存到其中,例如:
To do this the other way round you would first save the user model and then save the customer model to it like:
$user = new User($data);
$user->save();
$customer = new Customer($customerData);
$user->customer()->save($customer);
可能没有必要先保存用户模型,但我总是这样做,不知道为什么.
It may not be necessary to save the user model first but I've just always done that, not sure why.
这篇关于无法让 Laravel 助理工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
PHP、MySQL PDOException 的死锁异常代码?Deadlock exception code for PHP, MySQL PDOException?(PHP、MySQL PDOException 的死锁异常代码?)
PHP PDO MySQL 可滚动游标不起作用PHP PDO MySQL scrollable cursor doesn#39;t work(PHP PDO MySQL 可滚动游标不起作用)
PHP PDO ODBC 连接PHP PDO ODBC connection(PHP PDO ODBC 连接)
使用 PDO::FETCH_CLASS 和魔术方法Using PDO::FETCH_CLASS with Magic Methods(使用 PDO::FETCH_CLASS 和魔术方法)
php pdo 只从 mysql 获取一个值;等于变量的值php pdo get only one value from mysql; value that equals to variable(php pdo 只从 mysql 获取一个值;等于变量的值)
MSSQL PDO 找不到驱动程序MSSQL PDO could not find driver(MSSQL PDO 找不到驱动程序)