Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

Merhabalar, sorup sormama konusunda şüpheliydim ama geliştirmek için hem bana hemde başka arkadaşlara faydalı olacağına inandığım için bu konuyu başlattım.

Masraflar tablosuna masraf "düzenleme" yetkisi olan kişi kayıt eklerken select içinden ilgili kullanıcıyı seçiyor buraya kadar tamam.
"düzenleme" yetkisi olmayan kişi masraf eklesin ama select içinden kendi ismi seçili ve disabled olsun.

Bu iş için kullandığım 1.kod

<select name="user_id" id="user"
		class="form-control select-user  {{ $errors->has('user_id') ? 'border-danger-400' : '' }}"
		{{ Auth::user()->can('masraflar_edit') ? 'enabled' :'disabled' }}
		required data-fouc>
	@foreach($users as $id => $user)
		<option value="{{ $id }}"
				{{
				   Auth::user()->can('masraflar_edit') ?
				   
				   /* düzenleme yetkisi var diğer kullanıcalar için ekleme yapabilir */
				   
				   (isset($masraflar) && $masraflar->user ? $masraflar->user->id : old('user_id')) == $id ? 'selected' : '' :
				   
					/* düzenleme yetkisi yok sadece kendi adına ekleme yapabilir */
					
				   Auth::user()->id == $id ? 'selected' : ''
				 }}>{{ $user }}
		</option>
	@endforeach
</select>

Buda 2.kod

@can('masraflar_edit')
	<select name="user_id" id="user"
			class="form-control select-user  {{ $errors->has('user_id') ? 'border-danger-400' : '' }}"
			required data-fouc>
		@foreach($users as $id => $user)
			<option value="{{ $id }}"{{ (isset($masraflar) && $masraflar->user ? $masraflar->user->id : old('user_id')) == $id ? 'selected' : '' }}>{{ $user }}</option>
		@endforeach
	</select>
@else
	<input name="user_id" type="hidden" value="{{ Auth::user()->id }}">
@endcan

Blade içinde bu kontrolleri yapmak canımı sıkıyor yanlış olduğunu biliyorum ama
mustafa hocam kesin beğenmez 😃 bende beğenmedim 😃
Sizlerin varsa tavsiyelerini ve başka yöntemlerinide öğrenmek isterim

Saygılar...

    En azından ternary operatörleri (koşul ? bu : diğeri) parantez içine alın.

    AbdulkadirLevent

    Blade içerisinde çok güzel bir component sistemi mevcut. Bunu kullanarak daha temiz iş çıkarırsınız:
    https://laravel.com/docs/7.x/blade#components

    Ayrıca Html paketini kullanırsanız daha iyi olur. Eskiden Laravel'in bir parçasıydı ama sonra ayrıldı:
    https://github.com/laravelcollective/html
    https://laravelcollective.com/docs/6.0/html

    Bir de widget mantığı var. Eskiden forumda bir yerde anlatmıştım ama bulamadım. Şu paket de benim anlattığımın gelişmiş hali. Bunu da inceleyebilirsiniz:
    https://github.com/arrilot/laravel-widgets

    Güncelleme:
    Buldum https://laravel.gen.tr/d/3097-static-controller-kullanimi/7

      mgsmus Teşekkür ederim hocam (biraz geç oldu ama kusura bakma)
      Değerli önerilerinizi uygulamaya gayret edeceğim çok sağolun...