DBを更新しようとしていますが、正しく動作しません。Laravel更新メソッドが動作しない
更新メソッドを作成すると、問題はすべてのレコードをproduct_idで更新し続けますが、各レコードは更新する必要があることです。 私のdbに異なる値を持つインスタンス10のレコードがあります。
スクリプトを実行すると、すべてのレコードが入力フィールドから最初の値を取得します。
正しく動作させるにはどうすればよいですか?
id | product_id | short_name | input_video
___________________________________________________________________________
1 | 49 | de | c:\...
2 | 49 | en | c:\...
3 | 49 | tr | c:\...
4 | 49 | dr | c:\...
私が実行している場合は、私のコード(ピッキング・デ・)それは次のようになります:
id | product_id | short_name | input_video
___________________________________________________________________________
1 | 49 | de | c:\...
2 | 49 | de | c:\...
3 | 49 | de | c:\...
4 | 49 | de | c:\...
コード:
# save language selection
$lsCounter = 0;
$langSelecName = $request->input('language_selection');
$langSelecFile = $request->file('language_selection');
if($langSelecName)
{
$projectLangPath = $Path . "language";
foreach($langSelecName as $langSelecNameKey => $langSelecNameValue)
{
if($langSelecFile[$lsCounter]['input_vid_lang'] != null)
{
$langVidFileName = $langSelecFile[$lsCounter]['input_vid_lang']->getClientOriginalName();
$languages = new Language();
$languages['short_name'] = $langSelecNameValue;
$languages['input_video'] = $projectLangPath . '\\' . $langVidFileName;
$languages->product()->associate($product);
$langSelecName = $request->input('language_selection');
$langData = [
'short_name' => $languages['short_name'],
'input_video' => $languages['input_video']
];
$intProductID = intval($productID);
$findLang = $languages->where('product_id', $intProductID);
$productID = $data['id'];
if($findLang->update($langData))
{
$langSelecFile[$lsCounter]['input_vid_lang']->move($projectLangPath, $langVidFileName);
}
}
$lsCounter++;
}
}
どのように私のデシベルの小さなscretchは、次のようになります
私のwhere節はおそらく正しいとは言えませんが、私はそれを修正する方法がわかりません。
編集 私のモデル:
<?php
class Language extends Model
{
protected $table = 'products_languages';
protected $fillable = ['product_id', 'short_name', 'input_video'];
public function product()
{
return $this->belongsTo('App\Product', 'product_id');
}
}
編集
ビュー:
: <fieldset class="form-group">
<select class="form-control" id="language_selection" name="language_selection[]" multiple>
@foreach($languages as $languageKey => $languageValue)
<option value="<?php echo $languageValue->short_name; ?>"><?php echo $languageValue->name; ?></option>
@endforeach
</select>
</fieldset>
@if($type == "edit")
<input name="id" type="hidden" value="{{ $productId }}">
@if($languagesCount > 0)
@foreach($languages as $languagesKey => $languagesValue)
<?php $i = 0 ?>
<span class="btn btn-primary btn-file lang-edit">{{ strtoupper($languagesValue->short_name) }}</span>
<?php $i++ ?>
@endforeach
@endif
@endif
$ langSelecNameのコンテンツを提供できますか?あなたの言語モデル/クラスを追加してください。見える。あなたは連想配列制約としてshort_nameとinput_videoを持っていて、オブジェクト演算子を使わないのはなぜですか? –
@Frank Provost私はこの出力配列を取得します:1 [▼ 0 => "de" ] – utdev
@FrankProvost私のモデル – utdev