我很喜欢laravel和php而且我缺乏经验。我正在为一个已经构建的项目工作,并且我无法修复 “SeminarController” 这里的错误代码:
if(Input::has('relative_link_titles')){
$rldesc = Input::get('relative_link_titles');
$rllinks = Input::get('relative_link_urls');
$array = array_combine($rldesc,$rllinks);
while($ar = current($array)){
$val = Relative_PackageLinks::where('relpl_desc',key($array))->get();
if(empty($val[0])){
$newlink = new Relative_PackageLinks();
$newlink->relpl_desc = key($array);
$newlink->relpl_packageid = $id;
$newlink->relpl_link = current($array);
$newlink->save();
}
next($array);
}
$result = Relative_PackageLinks::whereNotIn('relpl_desc',$rldesc)->delete();
} else {
Relative_PackageLinks::where('relpl_packageid',$id)->delete();
}`
当我按下保存时,如果输入'relative_link_titles'具有相同的名称,它会清除所有表格,我不明白为什么所以任何有经验的php和laravel都会有很多帮助来回答这个问题。谢谢你好!
答案 0 :(得分:0)
从Input :: get()返回的数组将是一个索引数组而不是关联数组。因此,当您执行key($array)
时,它会传递0,1,2等,而不是输入文本
另外,使用while
会使情况混乱;最好使用foreach
。
尝试这一点,虽然如果没有对每个字段中保存的内容进行一些解释,很难确切知道你要做什么。
$rldesc = Input::get('relative_link_titles');
$rllinks = Input::get('relative_link_urls');
$array = array_merge($rldesc, $rllinks);
foreach($array as $value) {
$val = Relative_PackageLinks::where('relpl_desc', $value)->first();
if(!$val) {
$newlink = new Relative_PackageLinks();
$newlink->relpl_desc = $value;
$newlink->relpl_packageid = $id;
$newlink->relpl_link = $value;
$newlink->save();
}
$result = Relative_PackageLinks::whereNotIn('relpl_desc',$rldesc)->delete();
答案 1 :(得分:0)
这里是视图刀片,我也希望这些输入适用于我的项目中的每个研讨会,事实是上面的代码保存不要让它相同< strong>&#34;说明链接&#34; 输入或删除所有表(相对链接)
<table id="relative-links-output" class="table table-striped table-hover">
@foreach($relative_links as $rl)
<tr>
<td>{{ $rl->relpl_desc }}</td>
<td>{{ $rl->relpl_link }}</td>
<td class='col-md-1'><a href='#' class='remove-relative-link btn btn-danger'><i class='fa fa-minus'></i></a></td>
<input type="hidden" name="relative_link_titles[]" value="{{ $rl->relpl_desc }}">
<input type="hidden" name="relative_link_urls[]" value="{{ $rl->relpl_link }}">
</tr>
@endforeach
</table>
答案 2 :(得分:0)
我做到了很简单我只需要将where('relpl_packageid',$id)->
添加到$ result和$ val,以便while循环每次检查特定的$ id