reza ataei
4 سال پیش توسط reza ataei مطرح شد
4 پاسخ

ارور در متد map

دوستان من در lumen از متد map در collection استفاده میکنم ولی با ارور زیر مواجه میشم:
Call to undefined method App\Course::mapInto()
میشه راهنمایی کنید

public function toArray($request)
    {
        return [
            'data' => $this->collection->map(function ($item) {
                return [
                    'title' => $item->title,
                    'body' => $item->body,
                    'image' => $item->img,
                ];
            })

        ];
    }
    public function with($request)
    {
        return [
            'status'=>'success'
        ];
    }

ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
0

The map method iterates through the collection and passes each value to the given callback. The callback is free to modify the item and return it, thus forming a new collection of modified items:

متد map کالکشن رو پیمایش میکنه و به ازای هر یک گزینه شرط داخل کلوژر رو اعمال میکنه
اما شما یک آرایه رو بهش پاس دادید.

در عوض میتونی از متد mapWithKeys استفاده کنی:

$keyed = $collection->mapWithKeys(function ($item) {
    return ['title' => $item['title']];
});

$keyed->all();

reza ataei
تخصص : در حال یادگیری.....
@rezaataei54 4 سال پیش آپدیت شد
0

@ali.bayat
ممنون از پاسختون.ولی من تو فراخوانی یک آی دی خاص با این ارور مواجه میشم.مثلا فراخوانی یک کاربر با id=1
مثال:http://localhost:8000/api/v1/courses/1
توضیح تصویر رو وارد کنید


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
1

احتمالا Instance کلاس کوئری بیلدر برگشت داده میشه و شما سعی میکنید از متد mapInto روی کوئری بیلدر استفاده کنید..
ابتدا نتایج رو به کالکشن تبدیل کنید..


reza ataei
تخصص : در حال یادگیری.....
@rezaataei54 4 سال پیش مطرح شد
0

@rezaataei54
مشکل از کنترلر بود که تو متد تعریف شده مجدد از collection استفاده کرده بودم


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام