[英]Passing Array to controller for saving in many-to-many relationship
我正在嘗試允許我的用戶將標簽添加到已提交的職位發布中。
為此,我正在使用bootstrap-tokenfield插件。
jQuery腳本收集數組並提交:
//create a new array and push the skills on to it.
var tokenfield = new Array();
$(".skills").each(function() {
tokenfield.push($(this).val());
});
然后使用ajax將其與所有表單詳細信息一起提交給我的控制器功能。
控制器:
//save job
$job = new Job;
$job->user_id = $this->userID;
//other fields...
$job->save();
//After job is saved iterate over tokenfield array and save to pivot table using Laravel Eloquent properties:
foreach($_POST['tokenfield'] as $val){
//only skill name is passed from form. Find id:
$skill = Skill::where('name','=', $val)->first();
if(JobSkill::create(array('job_id' => $job->id, 'skill_id' => $skill->id)))
{ return Response::json(array('success' => 200));}
我收到錯誤消息:嘗試獲取與$ skill-> id相關的非對象的屬性,因此我做了dd($ _ POST ['tokenfield']); 結果是:
array(1) { [0]=> string(33) "Window Installation, deck removal"}
我的問題是:是我沒有正確創建數組還是在控制器中沒有正確接受它? TIA
簡而言之,Laravel不接受$ _POST ['tokenfield']
在JAVA上不是很好,但是
var tokenfield = new Array();
$(".skills").each(function() {
tokenfield.push($(this).val());
});
不是這個意思是
var tokenfield = new Array(
$(".skills").each(function() {
tokenfield.push($(this).val());
}));
糾正我,如果我錯了,但是對我來說,這似乎是控制器找不到發布數據
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.