[英]How can i update table without id
我的客戶希望使他的徽標在網站上富有活力。 因此,在儀表板中,我在管理儀表板中包含一個字段名稱“設置”,他可以在其中更改其徽標。 為此,我需要更新不帶id的設置表,因為最初數據庫中沒有任何數據。 要更新表而不創建需要“ id”。因此,我面臨一個問題。 如果有其他替代方法可以使徽標在網頁中動態化,請建議我。
<form action="{{route('updatesettings',['id'=>$settings->id])}}" method="post" enctype="multipart/form-data">
{{csrf_field()}}
<div class="form-group">
<label for="changelogo">CHANGE LOGO</label><br>
<input type="file" name="image" class="form-control ">
</div>
<div class="form-group">
<label for="changelogo">CHANGE Image for About Home page</label><br>
<input type="file" name="image1" class="form-control ">
</div>
<div class="form-group">
<label for="changelogo">CHANGE First Image for About page</label><br>
<input type="file" name="image2" class="form-control ">
</div>
<div class="form-group">
<label for="changelogo">CHANGE Second Image for About page</label><br>
<input type="file" name="image3" class="form-control ">
</div>
<div class="form-group">
<label for="about">About</label>
<textarea name="about" class="form-control"></textarea>
</div>
<div class="form-group">
<button class="btn btn-primary">update</button>
</div>
</form>
控制者
public function updatesettings(Request $request)
{
$data['about'] = $request->about;
if($request->hasFile('image'))
{
$image = $request->file('image');
$ext=$image->getClientOriginalExtension();
$imageName = md5(microtime()).'.'.$ext;
$uploadPath = public_path('uploaded/');
if($image->move($uploadPath,$imageName))
{
$data['image'] = $imageName;
}
}
if($request->hasFile('image1'))
{
$image = $request->file('image1');
$ext=$image->getClientOriginalExtension();
$imageName = md5(microtime()).'.'.$ext;
$uploadPath = public_path('uploaded/');
if($image->move($uploadPath,$imageName))
{
$data['image1'] = $imageName;
}
}
if($request->hasFile('image2'))
{
$image = $request->file('image2');
$ext=$image->getClientOriginalExtension();
$imageName = md5(microtime()).'.'.$ext;
$uploadPath = public_path('uploaded/');
if($image->move($uploadPath,$imageName))
{
$data['image2'] = $imageName;
}
}
if($request->hasFile('image3'))
{
$image = $request->file('image3');
$ext=$image->getClientOriginalExtension();
$imageName = md5(microtime()).'.'.$ext;
$uploadPath = public_path('uploaded/');
if($image->move($uploadPath,$imageName))
{
$data['image3'] = $imageName;
}
}
if(Setting::first()->update($data))
{
return redirect()->route('showsettings');
}
return redirect()->route('showsettings');
}
嘗試獲取非對象的屬性“ id”(視圖:C:\\ xampp \\ htdocs \\ odan \\ resources \\ views \\ admin \\ modules \\ settings \\ setting.blade.php)
正如您所說的,最初沒有數據權。 那為什么要從form
傳遞id呢? 從您的問題來看, settings
表中總會有一個條目。
因此,建立一個沒有id的簡單route
,並通過設置Setting::first() // instially empty
獲取來顯示數據
然后在命中提交更新您通過建模
$setting = Setting::first();
$setting->myfields = $fileds;
$setting->save();
而已。
即使您可以使用laravel的updateOrCreate方法
您需要為其保留默認數據。 制作數據庫表以獲取徽標。 最初,您可以保留“ defaultimg”,並且當用戶想要對其進行更新時,請獲取該行ID並對其進行更新,如果您只有1個徽標,則請進行驗證以確保用戶不能在該表中添加多個數據(“徽標”表) )。 希望你能得到。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.