我有三个相互关联的表抛出多态一对多关系
表
users
id - integer
name - string
office
id - integer
name - string
phones
id - integer
name - string
phones_id - integer
phones_type - string
我想将电话号码添加到phones
与特定用户相关的表中
用户.php
public function phones()
{
return $this->morphMany('App\Phone', 'phones');
}
电话.php
public function phones()
{
return $this->morphTo();
}
创建.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);
}
但它给了我一个错误
传递给 Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() 的参数 1 必须是 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 行