【发布时间】:2019-03-31 17:29:09
【问题描述】:
我有三个相互关联的表抛出多态一对多关系
表格
users
id - integer
name - string
office
id - integer
name - string
phones
id - integer
name - string
phones_id - integer
phones_type - string
我想将电话号码添加到与特定用户相关的phones 表中
user.php
public function phones()
{
return $this->morphMany('App\Phone', 'phones');
}
Phone.php
public function phones()
{
return $this->morphTo();
}
Create.blade.php
<form action="{{route('dashboard.users.store')}}" method="post">
<div class="input-group control-group after-add-more">
<input type="text" name="phone[]" class="form-control">
<div class="input-group-btn">
<button class="add-more" type="button">Add</button>
</div>
</div>
<button type="submit">save</button>
</form>
<!-- Copy Fields -->
<div class="copy" hidden>
<div class="control-group input-group">
<input type="text" name="phone[]" class="form-control">
<div class="input-group-btn">
<button class="remove" type="button">Remove</button>
</div>
</div>
</div>
Javascript
<script>
$(document).ready(function() {
$(".add-more").click(function(){
var html = $(".copy").html();
$(".after-add-more").after(html);
});
$("body").on("click",".remove",function(){
$(this).parents(".control-group").remove();
});
</script>
我正在尝试将记录存储到手机中使用UserController.php中的此代码
if ($request->phone) {
$user->phones()->saveMany($request->phone);
}
但它给了我一个错误
参数 1 传递给 Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() 必须是 Illuminate\Database\Eloquent\Model 的实例,给定字符串,调用 在 C:\Server\data\htdocs\justice_way\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Relations\HasOneOrMany.php 在第 264 行
dd($request) 给我
"phone" => array:2 [▼
0 => "+1 (776) 209-9366"
1 => "+1 (444) 579-3232"
]
当我尝试时
if ($request->phone) {
$phone = new Phone;
$phone->name = $request->phone;
$user->phones()->save($phone);
}
报错
传递给 Illuminate\Database\Grammar::parameterize() 的参数 1 必须 属于数组类型,给定 int,调用 C:\Server\data\htdocs\justice_way\vendor\laravel\framework\src\Illuminate\Database\Query\Grammars\Grammar.php 在第 871 行
【问题讨论】:
标签: laravel-5.8