Php 如何修改雄辩关系并将其传递给Blade

Php 如何修改雄辩关系并将其传递给Blade,php,laravel,Php,Laravel,我需要修改雄辩的关系(它可以是更改值、洗牌或删除某些项目) 在控制器中,您可以执行以下操作: $question = Question::first(); //$question has a relationship with Answer, therefore I have $question->answers. $question->answers = $this->modifyAnswers($question->answers); dd($question->

我需要修改雄辩的关系(它可以是更改值、洗牌或删除某些项目)

在控制器中,您可以执行以下操作:

$question = Question::first();
//$question has a relationship with Answer, therefore I have $question->answers.
$question->answers = $this->modifyAnswers($question->answers);
dd($question->answers) //Worked! Displaying modified Answers

return view('someView', compact($question));
//In the blade file, it's receiving original $question->answers
解决方法是添加具有不同名称的新属性

$question->modifiedAnswers = $this->modifyAnswers($question->answers);
//And blade can access $question->modifiedAnswers

但是有什么方法可以在不添加其他属性的情况下修改值吗?

您可以,使用方法
setRelation($name,$value)


更多信息请参见此处

使用方法
setRelation($name,$value)


此处的更多信息

请尝试使用“否”。我想用修改后的集合替换当前的关系集合。此外,内部属性数组中的修改值alrd(由dd()检查),但Blade/Vue以某种方式显示了原始值。下面的答案是否解决了您的问题,或者您仍然需要帮助?是的。它解决了这个问题。虽然如果还有其他方法,知道这一点会很棒。试试看,为什么不使用“否”。我想要的是用修改后的集合替换当前的关系集合。此外,内部属性数组中的修改值alrd(由dd()检查),但Blade/Vue以某种方式显示了原始值。下面的答案是否解决了您的问题,或者您仍然需要帮助?是的。它解决了这个问题。如果还有别的办法的话,那就太好了。
$question = Question::first();

$question->setRelation('answers', $this->modifyAnswers($answers));

dd($question->relationLoaded('answers'));