فیلدها

توضیع

در این بخش قرار نحویه ساخت فیلد رو برای شما آموزش بدم.

قرار اموزش ساخت یه فیلد رنگ رو آموزش بدم.

تعریف فیلد

php artisan Zoroaster:field ColorPicker

حالا به این ادرس app/Zoroaster/Fields برید فایل خود رو باز کنید.

با همچین کدی رو به رو می شید.

که دارای 3 تا view هست که هر کدومشون مربوط به صفحه خودش هست.

<?php

    namespace App\Zoroaster\Fields;

    use KarimQaderi\Zoroaster\Fields\Extend\Field;
    use KarimQaderi\Zoroaster\Fields\Traits\Resource;

    class ColorPicker extends Field
    {
         use Resource;
         
       /**
        * @param Field $field
        * @param $data
        * @param null $resourceRequest
        * @return \Illuminate\View\View
        */
       public function viewForm($field , $data , $resourceRequest = null)
       {
           return view('fields.ColorPicker.Form')->with(
               [
                   'field' => $field ,
                   'data' => $data ,
                   'value' => isset($data->{$field->name}) ? $data->{$field->name} : null ,
                   'resourceRequest' => $resourceRequest ,
               ]);
       }
       
       /**
        * @param Field $field
        * @param $data
        * @param null $resourceRequest
        * @return \Illuminate\View\View
        */
       public function viewDetail($field , $data , $resourceRequest = null)
       {
           return view('fields.ColorPicker.Detail')->with(
               [
                   'field' => $field ,
                   'data' => $data ,
                   'value' => $this->displayCallback($data , $resourceRequest , $field) ,
                   'resourceRequest' => $resourceRequest ,
               ]);
       }
       
       /**
        * @param Field $field
        * @param $data
        * @param null $resourceRequest
        * @return \Illuminate\View\View
        */
       public function viewIndex($field , $data , $resourceRequest = null)
       {
           return view('fields.ColorPicker.Index')->with(
               [
                   'field' => $field ,
                   'data' => $data ,
                   'value' => $this->displayCallback($data , $resourceRequest , $field) ,
                   'resourceRequest' => $resourceRequest ,
               ]);
       }
       
       public function displayCallback($data , $resourceRequest , $field)
       {
           if(is_callable($field->displayCallback))
               return call_user_func($field->displayCallback , $data , $resourceRequest , $field);

           return data_get($data , $field->name);
       }
    }

viewForm

مربوط به صفحه اضافه و آپدیت کردن resource هست. به ادرس resources/views/fields/ColorPicker برید و فایل Form.blade.php رو باز کنید. کد زیر رو قرار بدید

<label>
    <span class="label">{{ $field->label }}</span>
    <input class="uk-input" name="{{ $field->name }}" type="color" value="{{  $value }}">
</label>

viewIndex

مربوط به صفحه اصلی resource هست. به ادرس resources/views/fields/ColorPicker برید و فایل Index.blade.php رو باز کنید. کد زیر رو قرار بدید

<label>
    <span class="label">{{ $field->label }}</span>
    <div class="body">{{ $value }}</div>
</label>

viewDetail

مربوط به صفحه نمایش resource هست. به ادرس resources/views/fields/ColorPicker برید و فایل Detail.blade.php رو باز کنید. کد زیر رو قرار بدید

{{ $value }}

ثبت فیلد

اضافه کردن فیلد به resource :

use App\Zoroaster\Fields\ColorPicker;

/**
 *  گرفتن فیلدها برای نمایش دادها
 *
 * @return array
 */
public function fields()
{
    return [
        ID::make('ID', 'id')->sortable(),
        
        ColorPicker::make('رنگ','color'),
    ];
}