<i id='TEq3e'><tr id='TEq3e'><dt id='TEq3e'><q id='TEq3e'><span id='TEq3e'><b id='TEq3e'><form id='TEq3e'><ins id='TEq3e'></ins><ul id='TEq3e'></ul><sub id='TEq3e'></sub></form><legend id='TEq3e'></legend><bdo id='TEq3e'><pre id='TEq3e'><center id='TEq3e'></center></pre></bdo></b><th id='TEq3e'></th></span></q></dt></tr></i><div id='TEq3e'><tfoot id='TEq3e'></tfoot><dl id='TEq3e'><fieldset id='TEq3e'></fieldset></dl></div>
<legend id='TEq3e'><style id='TEq3e'><dir id='TEq3e'><q id='TEq3e'></q></dir></style></legend>

    <small id='TEq3e'></small><noframes id='TEq3e'>

        • <bdo id='TEq3e'></bdo><ul id='TEq3e'></ul>

        <tfoot id='TEq3e'></tfoot>

        Laravel attach() 方法不适用于 hasMany 方面

        Laravel attach() method not working to hasMany side(Laravel attach() 方法不适用于 hasMany 方面)
      1. <i id='lvyF4'><tr id='lvyF4'><dt id='lvyF4'><q id='lvyF4'><span id='lvyF4'><b id='lvyF4'><form id='lvyF4'><ins id='lvyF4'></ins><ul id='lvyF4'></ul><sub id='lvyF4'></sub></form><legend id='lvyF4'></legend><bdo id='lvyF4'><pre id='lvyF4'><center id='lvyF4'></center></pre></bdo></b><th id='lvyF4'></th></span></q></dt></tr></i><div id='lvyF4'><tfoot id='lvyF4'></tfoot><dl id='lvyF4'><fieldset id='lvyF4'></fieldset></dl></div>
        <legend id='lvyF4'><style id='lvyF4'><dir id='lvyF4'><q id='lvyF4'></q></dir></style></legend>
        <tfoot id='lvyF4'></tfoot>
      2. <small id='lvyF4'></small><noframes id='lvyF4'>

              <bdo id='lvyF4'></bdo><ul id='lvyF4'></ul>
                  <tbody id='lvyF4'></tbody>

                  本文介绍了Laravel attach() 方法不适用于 hasMany 方面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  应用程序具有模型:

                  class Atividade extends Eloquent {
                      public function intervencoes() {
                          return $this->belongsToMany('Intervencao');
                      }
                  }
                  


                  class Intervencao extends Eloquent {
                      public function atividades() {
                          return $this->hasMany('Atividade');
                      }
                  }
                  


                  以下代码有效:

                  Atividade::find($id)->intervencoes()->attach($intervencao_id);
                  

                  但是,这个……

                  Intervencao::find($id)->atividades()->attach($atividade_id);
                  

                  返回一个 BadMethodCallException:

                  Returns an BadMethodCallException:

                  调用未定义的方法 IlluminateDatabaseQueryBuilder::attach()

                  Call to undefined method IlluminateDatabaseQueryBuilder::attach()


                  我试图设置多对多关系,所以只需要更改它...

                  I was trying to set a many-to-many relationship, so just needed to change this...

                  return $this->hasMany('Atividade');
                  

                  为此:

                  return $this->belongsToMany('Atividade');
                  

                  推荐答案

                  在此处查看 Laravel 文档:http://laravel.com/docs/eloquent#inserting-related-models

                  See the Laravel documentation here: http://laravel.com/docs/eloquent#inserting-related-models

                  基本上,您已经为相同的两个表设置了两种不同类型的关系 - 您设置了多对多和一对多.看起来您可能想要多对多,因此您需要更改此行:

                  Basically you have set up two different types of relationships for the same two tables - you've set up a many-to-many and a one-to-many. It looks as though you probably wanted a many-to-many, so you'll need to change this line:

                  return $this->hasMany('Atividade');
                  

                  为此:

                  return $this->belongsToMany('Atividade');
                  

                  这会将关系设置为多对多关系,然后将支持 attach() 方法.

                  This will set the relationship up as a many-to-many relationship, which will then support the attach() method.

                  attach() 方法仅适用于多对多,对于其他关系有 save()saveMany()associate()(参见上面链接的文档).

                  The attach() method is only for many-to-many, for other relationships there's save() or saveMany() and associate() (see the docs linked above).

                  这篇关于Laravel attach() 方法不适用于 hasMany 方面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Laravel 4 - Connect to other database(Laravel 4 - 连接到其他数据库)
                  Call external API function from controller, LARAVEL 4(从控制器调用外部 API 函数,LARAVEL 4)
                  Empty string instead of null values Eloquent(空字符串而不是空值 Eloquent)
                  quot;laravel.logquot; could not be opened: failed to open stream(“laravel.log无法打开:无法打开流)
                  Displaying the Error Messages in Laravel after being Redirected from controller(从控制器重定向后在 Laravel 中显示错误消息)
                  Laravel Creating Dynamic Routes to controllers from Mysql database(Laravel 从 Mysql 数据库创建到控制器的动态路由)
                  <legend id='d7xxF'><style id='d7xxF'><dir id='d7xxF'><q id='d7xxF'></q></dir></style></legend>

                  • <bdo id='d7xxF'></bdo><ul id='d7xxF'></ul>
                    • <i id='d7xxF'><tr id='d7xxF'><dt id='d7xxF'><q id='d7xxF'><span id='d7xxF'><b id='d7xxF'><form id='d7xxF'><ins id='d7xxF'></ins><ul id='d7xxF'></ul><sub id='d7xxF'></sub></form><legend id='d7xxF'></legend><bdo id='d7xxF'><pre id='d7xxF'><center id='d7xxF'></center></pre></bdo></b><th id='d7xxF'></th></span></q></dt></tr></i><div id='d7xxF'><tfoot id='d7xxF'></tfoot><dl id='d7xxF'><fieldset id='d7xxF'></fieldset></dl></div>

                      <tfoot id='d7xxF'></tfoot>
                        <tbody id='d7xxF'></tbody>

                        <small id='d7xxF'></small><noframes id='d7xxF'>