Skip to content

Latest commit

 

History

History
268 lines (167 loc) · 5.53 KB

Blade.md

File metadata and controls

268 lines (167 loc) · 5.53 KB

عودة

ملفات العرض - Blade


طريقة أحسن لإنشاء قوائم منسدلة

# بملف المتحكم
$categories = Category::lists('title', 'id');

# بملف العرض
{{ Form::select('category', $categories) }}

متغيرات الحلقات

@foreach($items as $item)
<tr>
  <td> معرف فريد يخص هذا الصف هو: : {{$loop->iteration}} </td>
  <td> @if($loop->first) هذا هو الصف الاول @endif </td>
  <td> @if($loop->last) هذا هو الصف الاخير @endif </td>
</tr>  
@endforeach

شيفرة أنظف مع مولد الـ HTML

# توليد وسم رابط ملف جافاسكربت خارجي
{{ HTML::script('js/app.min.js'); }}

# توليد وسم رابط تنسيقات خارجي
{{ HTML::style('css/style.css'); }}

# توليد وسم صورة
{{ HTML::image('img/img1.jpg'); }}

# توليد وسم رابط فائق
{{ HTML::link('http://github.com','Lara-shorter', ['id'=>'myLink']); }}

# Generating obsufscated mailto tag
{{ HTML::mailto('myemail@mail.com','Some person', ['id'=>'myEmail']); }}

# توليد قائمة مرتبة
{{ HTML::ol(['list item', 'list item', 'list item']); }}

# توليد قائمة غير مرتبة
{{ HTML::ul(['list item', 'list item', 'list item']); }}

# توليد قائمة غير مرتبة عناصرها متداخلة
{{ HTML::ul(['list item', 'list item' => ['list item','list item'], 'list item']); }}

حلقات forelse بدلا عن foreach

@forelse ($items as $item)

هذا هو العنصر {{ $item->id }}

@empty

لا يوجد أي عناصر

@endforelse

متغيرات قالب لا غنى لك عنها

# @json
    <script>
    let users = @json($users); // تحويل مجموعة الى جيسون
    </script>

# @stack & @push 

    // في ملف العرض الاب
    @stack('scripts') 
    
    // في ملف العرض الابن
    @push('scripts')
    <script>
    alert('مرحبا');
    </script>
    @endpush

# @inject 

    @inject('metrics' ,'App\Services\MetricServices')

    {{ $metrics->someMethod() }}

# @includeWhen 
    @includeWhen($someCondition ,'path\to\someview')

اضافة معاملات مخصصة لروابط التصفيح

{{ $users->appends(['sort' => 'votes'])->links() }}

{{ $users->withQueryString()->links() }}

{{ $users->fragment('foo')->links() }}

متغيرات قالب مخصصة

قم بإضافة اية متغيرات قالب مخصصة الى app\providers\AppServiceProvider.php

public function boot()
{
    Blade::directive('myMagicDirective', function ($expression) {
        return "any functionnality can be done to: {$expression}";
    });
} 

سيمكنك استعمالها بأي ملف عرض كـ

<p>  {{ @myMagicDirective(some params) }} </p>

متغيرات قالب جديدة تختصر الكثير

// @unless - laravel 9.x
@unless (Auth::check())
    لم يتم التحقق من هويتك بعد
@endunless

// @production - laravel 9.x
@production
    انت في بيئة الانتاج
@endproduction

// @env - laravel 9.x
@env('testing')
    أنت في بيئة اختبارية
@endenv

@env(['testing' ,'production'])
    أنت في بيئة اختبارية او انتاجية
@endenv

// @each - laravel 8.x
@each('products.product-item-view', $products, 'product') # بديل عن foreach include

// @disabled, @selected, @checked - laravel 9.x
<button type="submit" @disabled($product->isDisabled)>update</button>

<select name="version">
    @foreach ($product->versions as $version)
        <option value="{{ $version }}" @selected(old('version') == $version)>
            {{ $version }}
        </option>
    @endforeach
</select>

<input type="checkbox"
        name="active"
        value="active"
        @checked(old('active', $user->active)) />        

@parent

@section('modals')
    @parent

    // اضف اي محتوى تريده دون استبدال محتوى العنصر الاب
@endsection