Merhaba,
Öncelikle alternatif sorunuza cevap vereyim;
{{ Form::open( [ 'url' => '/edit-social/', 'method' => 'post', 'id' => 'edit-social' ] ) }}
@foreach($social as $data)
<input type="text" name="{{$data->site}}" value="{{$data->url}}">
<input type="hidden" name="hidden_id_{{$data->site}}" value="{{$data->id}}">
@endforeach
<p><button>KAYDET</button></p>
{!! Form::close() !!}
Bu kodu şu şekilde değiştirip;
{{ Form::open( [ 'url' => '/edit-social/', 'method' => 'post', 'id' => 'edit-social' ] ) }}
@foreach($social as $data)
<input type="text" name="{{$data->site}}" value="{{$data->url}}" data-id="{{$data->id}}">
@endforeach
<p><button>KAYDET</button></p>
{!! Form::close() !!}
Tüm form elemanlarını jquery ile toplayıp (döngü, serialize vb.) ajax ile post edebilirsiniz.
Veya bir başka örnek şu olabilir;
{{ Form::open( [ 'url' => '/edit-social/', 'method' => 'post', 'id' => 'edit-social' ] ) }}
@foreach($social as $data)
<input type="text" name="{{$data->id}}" value="{{$data->url}}">
@endforeach
<p><button>KAYDET</button></p>
{!! Form::close() !!}
Form nesnesinin name değeri veritabanındaki id değeri olursa gelen değeri doğrudan veritabanında güncellerseniz işiniz tamamlanmış olur. Sonuçta controller kısmında hangi input ile veriyi alıp hangi sütuna yazmanız gerektiğini söyleyen bir kural yok. Amaç sonuca ulaşmaksa bir başka kısa yol da budur. Bu örneklerin controller tarafındaki kısmını bildiğinizi varsayıyorum.
2. sorunuza gelecek olursak;
Yine bunun da birkaç yolu var. Tamamen sizin php bilginiz doğrultusunda kolaylaşır veya zorlaşır.
Örneğin;
$inputs = request()->all();
foreach ($inputs as $key => $value) {
// inputun son 3 karakteri _id ise bu bir id saklayan alandır.
if(substr($key, 0, -3 ) === "_id"){
$site = explode('_', $key)[0]; // Hangi site olduğunu bulduk
$id = $value; // Güncellenecek id değeri
$site_value = request()->get($site); // Veritananına yazılması gereken veri
A___Modeli::where('id', $id)->update(['XXX' => $site_value]);
// veya
A___Modeli::where('XXX', $site)->update(['YYY' => $site_value]);
}
}
Veritabanı sütunlarınızı bilmediğim için XXX ve YYY kullandım. Orasını artık kendinize göre düzenlersiniz. Daha farklı yöntemleri siz geliştirirsiniz artık. Kod yazmanın resmi bir standartı yok sonuçta. Performanslı ve okunabilir olduğu sürece hangi yolu kullanacağınız sizin elinizde.
Kolay gelsin.