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'));