آفلاین
user-avatar

واکشی مقدار از ارایه

2 سال پیش
توسط bardia آپدیت شد
آفلاین
user-avatar
bardia ( 22746 تجربه )
2 سال پیش
تخصص : Golang/Laravel

سلام دوستان
من یه سری داده دارم توخروجی به صورت آرایه هست
میخوام فقط مقدار name شو برگردونم
این کد قسمت کنترلر هست

    $s = substr(str_shuffle(str_repeat("0123456789abcdefghijklmnopqrstuvwxyz", 5)), 0, 5);
    $d = myUser::create(['name' => str_random(8), 'email' => $s.'gmailcom']);
    $rs=$d->toarray();
    dd( $rs);

خروجی بصورت زیر هست

array:5 [▼
  "name" => "l7Y7ZpAv"
  "email" => "825yz gmail com"
  "updated_at" => "2018-08-14 05:53:49"
  "created_at" => "2018-08-14 05:53:49"
  "id" => 220
]

چظور فقط مقدار name رو برگدونم؟

آفلاین
user-avatar
مهدی طهرانی ( 18476 تجربه )
2 سال پیش
تخصص : cloud architect

@sajad.kazemi1993
اگر از لاراول استفاده می کنید از تابع array_pluck میتونید برای اینکار استفاده کنید
https://laravel.com/docs/master/helpers#method-array-pluck

آفلاین
user-avatar
bardia ( 22746 تجربه )
2 سال پیش
تخصص : Golang/Laravel

@haghft

اگه بخوام از چند ارایه name هاشو بگیرم چه کنم
این کد رو نوشتم اما خطا میده
کنترلر

    $s = substr(str_shuffle(str_repeat("0123456789abcdefghijklmnopqrstuvwxyz", 5)), 0, 5);
    $d = myUser::create(['name' => 'iarn', 'email' => $s.'@gmail.com']);
    $d2 = myUser::create(['name' => 'japon', 'email' => $s.'@gmail.com']);
    $dc=collect([$d,$d2]);
    $dc->toarray();
    $ss= $dc->name;

    return view('logo',compact('ss'));

کد ویو

       @foreach ($ss as $c)
                  {{$c['name']}}  
                  @endforeach

اینم خطا

Property [name] does not exist on this collection instance.
آفلاین
user-avatar
مهدی طهرانی ( 18476 تجربه )
2 سال پیش
تخصص : cloud architect

@sajad.kazemi1993
دوست عزیز به $dc->toarray(); نیازی نیست

        $dc = $dc->map(function ($item){
           return [
             'name' => $item->name  
           ];
        });

حالا خود $dc رو compact کن بفرست به ویو

آفلاین
user-avatar
علی فرج نیا ( 49 تجربه )
2 سال پیش
تخصص : برنامه نویس

@sajad.kazemi1993
سلام دوست عزیز
شما میتونید راحت تر این کارو انجام بدید
با استفاده از خود آرایه

    $s = substr(str_shuffle(str_repeat("0123456789abcdefghijklmnopqrstuvwxyz", 5)), 0, 5);
    $saveData[] = myUser::create(['name' => 'ali', 'email' => $s.'@gmail.com']);
    $saveData[] = myUser::create(['name' => 'reza', 'email' => $s.'@gmail.com']);
    $saveData[] = myUser::create(['name' => 'hesam', 'email' => $s.'@gmail.com']);

    return view('logo',compact('saveData'));

و در قسمت ویو هم

    @foreach($saveData as $data)
        {{ $data->name}}
    @endforeach
آفلاین
user-avatar
bardia ( 22746 تجربه )
2 سال پیش
تخصص : Golang/Laravel

@haghft
@alifarajnia
سپاس فروان از دوستان گرامی
مشکل بنده با دستور زیر حل شد

    $emails = DB::table('myUser')->collect('email');
    $nodes = DB::table('myUser')->collect('name');

من درواقع دارم لاراول رو به پایگاه داده neo4j متصل می میکنم برای ایجاد گراف و گره های
که دو دستور فوق تمام امیل های گره و تمام نام های گره رو بر می کردونه

برای ارسال پاسخ باید وارد سایت شوید