🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۷ Mahdi
خطای دیرکتیو ها
جامعه لاراول ایجاد شده در ۱۴ دی ۱۴۰۱

سلام احمدجان

@can('create',$video)
<h3 class="post-box-title">ارسال نظراتh3>
<form action="{{ route('videos.comment.store',$video) }}" method="POST">
    @csrf
    <textarea name="body" class="form-control" rows="8" id="Message" placeholder="پیام">textarea>
    <button type="submit" id="contact_submit" class="btn btn-dm">ارسال پیامbutton>
form>
@endcan

مشکلی ک جود داره اینکه کلا این قسمت ب ما نشون نمیده چ صاحب ویدیو باشیم چ نباشیم

در صورتیکه در مورد ادیت درست عمل میکرد و فقط به کاربر صاحب ویدیو دسترسی به لینک ادیت رو میداد

اینم بگم مشکلی از بابت policy و form request مونم نیست چون اونا ب درستی کار میکنن

سلام مهدی جان

خط اول کدت باید بصورت زیر باشه (داکیومنت برای توضیحات کاملتر)

@can('create', App\\Models\\Video::class)
صادق برزگر ۱۴ دی ۱۴۰۱، ۱۲:۲۱

سلام مهندس جان

مشکل بازم پا برجاست

Mahdi ۱۴ دی ۱۴۰۱، ۱۳:۵۸

مهدی جان لطفا سورس کدتون رو پیوست کنید تا بررسی بشه

صادق برزگر ۱۴ دی ۱۴۰۱، ۱۴:۰۵
https://uupload.ir/view/video-share4_9eam.rar/

خدمت شما بیزحمت کلاس فیلتر هم بررسی کنید من به scop مون request()->all() پاس ک میدادم در جابه جایی بین صفحات خطای ست شدن path به عنوان متد تعریف نشده میداد

منم اومدم به شکل زیر مشکل رو برطرف کنم

        if (in_array($param, $key)) {
            foreach ($param as $methodName => $value) {
                if (is_null($value)) continue;
                echo $value;
                $this->$methodName($value);
            }
        }

ایندفعه مشکلی ک پیش اومد این بود ک کلا چیزی وارد if نمیشد

و در نهایت به شکل زیر مشکل حل شد

$request->exept('page');

میشه بررسی کنید چرا در این حالت چیزی وارد if نمیشه

Mahdi ۱۴ دی ۱۴۰۱، ۱۵:۰۳

مهدی عزیز

کدهاتون رو بررسی کردم و برای مورد اول (Authorization) باید کدت بصورت زیر باشه:

@can('create', [App\\Models\\Comment::class, $video])

برای مورد دومی که گفتین با توجه به تاپیک قبلیتون، شرطی که گذاشتین اشتباهه و دارید دوتا آرایه رو توی in_array باهم مقایسه میکنید، ضمن اینکه باید شرط رو توی حلقه بزارید. نحوه استفاده از شرط باید به بصورت زیر باشه:

public function apply(array $param)
{
  $whiteList = ['sortBy', 'length', 'q'];
  foreach ($param as $methodName => $value) {
    if(!in_array($methodName, $whiteList) || is_null($value)) continue;
    $this->$methodName($value);
  }
}
بهترین پاسخ
صادق برزگر ۱۵ دی ۱۴۰۱، ۰۳:۵۰

تشکر??

Mahdi ۱۵ دی ۱۴۰۱، ۰۷:۰۸