我有3张桌子:

> id
>名称
>形象

颜色

> id
>名称
>形象

door_colors

> id
> door_id
> color_id

和两个与多对多关系的模型(每个门都有各种颜色,许多颜色重叠在一起):

门型号

class Door extends Eloquent {
    public function colors()
    {
        return $this->belongsToMany('Color','door_colors');
    }
}

颜色模型

class Color extends Eloquent {
    public function doors()
    {
        return $this->belongsToMany('Door','door_colors');
    }
}

我想创建一个窗体,我可以编辑门,并通过复选框更新可用的颜色.
这是我的管理员控制器

class AdminDoorsController extends AdminController {
    public function edit($id)
    {
        $data['door'] = Door::find($id);
        $data['colors'] = Color::all();
        return View::make('admin/doors/form',$data);
    }
}

和管理员门窗体视图

{{ Form::model($door) }}
Colors:
@foreach ($colors as $color)
{{ Form::checkBox('colors[]',$color->id) }} {{ $color->name }}
@endforeach
{{ Form::close() }}

问题1:如何进行复选,如果输入复选框,将检查与当前门有现有关系的那些,而不检查那些.

问题2:一旦我检查框并点击提交,我将如何更新关系? $door->颜色() – >分离();清除所有现有的门,然后$door-> colors() – > attach($color_id_array);根据一系列颜色ids创建新的?

任何输入是赞赏!

问题1:您应该将其传递到包含您的表单的视图中,尽管它也可以在视图中进行,尽管这不是真正的最佳实践.做类似的事情…
$checkeds = Door::find(1)->colors()->lists('id');

你找到的门是被更新的门.然后在输出循环中的复选框之前,添加

$checked = in_array($color->id,$checkeds) ? true : false;

然后你会改变

{{ Form::checkBox('colors[]',$color->id) }} 
{{ $color->name }}`

{{ Form::checkBox('colors[]',$color->id,$checked) }}
{{ $color->name }}

问题2:这实际上是一个完美的方法给你.使用

$door->colors()->sync(Input::get('colors'));

它将同时删除旧的,并在一个镜头中添加所有新的.

php – 与Laravel表单模型绑定和复选框的多对多雄辩关系更新的更多相关文章

  1. HTML5单选框、复选框、下拉菜单、文本域的实现代码

    这篇文章主要介绍了HTML5单选框、复选框、下拉菜单、文本域的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. ios – ipatool因异常而失败

    我正在导出企业部署的存档,我从ipatool获得了一个例外.我该如何解决这个问题?

  3. xcode4 – 重新启用XCode 4“Xcode启动时显示此屏幕”复选框.

    我设法取消选中Xcode4’显示这个屏幕,当Xcode启动’复选框,我想要它再次.这是如何实现的?除了“启动新项目”之外,Xcode4文档中还没有提到用户prefs中的任何内容.此外,Google上的任何地方似乎都没有任何问题.如果有人知道重新启用复选框的位置,请告诉我.再次感谢.V.V.解决方法选择窗口>欢迎使用主菜单中的Xcode,然后重新检查“显示此窗口…”

  4. 应用商店 – 自定义B2B应用的复选框未在iTunes连接中显示

    我想将一个应用程序作为自定义b2b应用程序带给AppleStore.唯一的问题是我的iTunes连接没有选项.这个B2B计划在德国不可用吗?我找不到任何具体的信息.也许你们中的一个有同样的问题.解决方法我有同样的问题,复选框不在那里.确保在iTunesConnect内您已经同意在“合同,税务和银行”下的相关合同.一旦你要求并同意这些,复选框应该出现.

  5. Swift - 让StoryBoard设计视图,程序运行时都使用横屏形式

    1,运行时横屏将项目属性“General”->“DeviceOritentation”的Portrait复选框去掉2,storyboard设计视图横屏在storyboard中,单击中间界面视图的头部,在右侧属性面板中。把Size设置为iPhone4-inch把Orientation设置成Landscape

  6. 如何在swift(iOS)中创建单选按钮和复选框?

    我正在开发一个允许进行调查的应用程序。我的布局是从基于XML的问题生成的。我需要创建单选按钮(单选)和复选框。我没有发现任何有用的swift。有没有人有想法?对于无线电按钮和复选框,没有内置的东西。您可以轻松实施复选框。您可以为UIControlStatenormal的按钮设置一个uncheckedImage,并为您的UIControlStateSelected设置一个checkedImage。现在点击按钮将更改其图像,并在选中和未检查的图像之间交替显示。要使用单选按钮,您必须为您要作为单选按钮的所有按钮

  7. swift – 在Xcode 6.0.1中的Interface Builder中,“限制边缘”是什么意思

    我理解“间距到最近邻”的目的,但是“限制边缘”是什么意思?在特定控件按钮的边缘“间距到最近邻”之间有一个链接,同时检查名为“限制边缘”的复选框吗?Autolayout中此功能的作用是什么?

  8. android – 带复选框的ListView项目 – 如何删除复选框涟漪效应?

    我有一个带有项目的ListView包含一个复选框和一些其他元素.问题是,当我点击Android5设备上的列表项时,我看起来像这样:我不希望在复选框周围产生涟漪效应.我怎么能实现这一点?

  9. Android复选框可见性问题

    我在我的代码中使用了一个复选框,当它检查时它会使textview和editText可见,但如果我取消选中de复选框,它们将继续显示而不是消失.这是代码:并且在相对布局内部的xml的一部分:当我取消选中复选框时,我该怎么做才能使textView和EditText消失?解决方法使用View.VISIBLE,View.INVISIBLE,View.GONE来控制可见性.

  10. android – 自定义列表单击复选框

    另外,如果单击列表项的主要部分但是在选中项目中的CheckBox时具有其他功能,如何设置列表以便继续执行我所需的功能?解决方法如here所述,只有在没有其他视图可聚焦的情况下,单击侦听器才有效.将CheckBox设置为focusable=“false”应该可以解决问题:

随机推荐

  1. php – 用户身份验证不会在Laravel包中持久存在

    谢谢事实证明问题在于新的Web中间件,将我需要会话数据的所有路由移动到路由组中,一切正常.

  2. php – 找不到laravel类(适用于localhost但不适用于DO服务器)

    这是一个重复的问题–例如:Laravel4migrations–classnotfound但是,我已经尝试了所有解决方案并且无法解决这个问题.脚本我在我的本地机器上创建了一个Laravel4项目–添加了一些类,控制器,视图等–项目运行良好.然后我将这个新的repo复制到我的DO服务器上–用composer等安装依赖项.该项目看起来不错,除了一个页面发出错误:您可以查看此页面here.我试过了…

  3. php – Laravel SSH服务器未存储在配置文件中

    我有一个涉及服务器管理的项目,我需要执行一些SSH命令.在Laravel我有SSH实用程序(远程),但我必须将配置放在一个文件中.我需要从数据库中连接存储在模型中的凭据.任何想法我怎么能这样做?

  4. php – 如何通过Axios将文件发送到Laravel

    我需要通过Axios将文件从客户端发布到服务器.这是我的Vuejs代码:这是我用于处理已发送文件的Laravel代码:但它始终返回否它不是文件.任何帮助将非常感激.您必须创建一个FormData对象并附加图像文件.一个例子是here.如果有效,请告诉我.

  5. php – Laravel API TokenMismatchException

    我有一个带有帖子数据的API调用;让我们说这是登录过程.使用Chrome的Postman扩展程序,我通过POST发送用户名和密码以登录用户.但是我得到了这样的信息:在我的基本控制器中,我有:当我用beforeFilter删除行时,一切正常.但这不是一个解决方案.任何POST调用都会收到此错误消息.我知道我需要这个_token.但是当我从API调用时,我如何获得此令牌?我知道我可以在Laravel中创建一个令牌,但是当我通过API从外部打电话时我怎么能这样做呢?

  6. php – Laravel重定向到一个路由,但随后apache给出了404错误

    这是我的最终(和工作)vhost配置:

  7. php – Laravel Collection键修改

    我使用Collection类中的filter方法从集合中删除一些对象.但在那次操作之后,有时会出现带钥匙的物体,例剩下1,4,5.我希望在过滤操作后总是有0,1,2,3等顺序的元素.有没有任何优雅的方法来做到这一点,而无需将表重写为新表?您可以使用LaravelCollection的values()方法以序列化顺序生成集合的键,如下所示:希望这可以帮助!

  8. php – Laravel 5,如何测试是否在控制器中选中了Checkbox

    如果选中复选框,我试图获取:在我看来:在我的控制器中:在web.PHP中:但不起作用.我该怎么办?谢谢你的答复.编辑1:这是我的形式很差的建设我相信你真正的问题是你有两种不同的形式.您的复选框采用一种形式,您的提交按钮采用第二种形式.我相信它们都需要采用相同的形式.否则,永远不会返回您的复选框状态,无论其状态如何.在您的视图中,尝试替换您提供的表单标记:

  9. php – Laravel 5 – 根据需要验证数组,但允许传递一个空数组

    我正在使用验证器验证Laravel5.4中的请求,请参阅文档:https://laravel.com/docs/5.4/validation#validating-arrays基本上,这是Controller中的代码:我想要求字段“items”的存在,并且这个代码可以实现,但问题是当“items”字段是空数组时验证失败,即,这是一种不受欢迎的行为.我知道这是“必需”参数的记录行为,但我没有看到任何

  10. php – Laravel扩展Form类

    我正在尝试扩展L4.1中的Form类,但我似乎错过了一些东西.我的文件基于API命名为FormBuilder.PHP,保存在app/libraries/extended/FormBuilder.PHP中.这实际上是我第一次尝试在Laravel中扩展核心类.我似乎无法指出如何正确扩展像这个Form类的核心类.编辑:我将“app/libraries/extended”添加到我的composer.jso

返回
顶部