需要有关laravel资源的帮助

时间:2018-02-08 10:11:35

标签: php laravel

我是Laravel的新手。我正在尝试使用Laravel Resource制作API。 以下代码运作良好,

enctype = multipart/form-data
method = post
prefix = tx_form
confirmation = 0
postProcessor {

        recipientEmail = someMail
        senderEmail = someMail
    }
10 = TEXTLINE
10 {
    type = text
    name = 2
    required = required
    label {
        value = Name:*
    }
}
20 = TEXTLINE
20 {
    type = text
    name = 3
    required = required
    label {
        value = E-Mail-Adresse:*
    }
}
30 = TEXTLINE
30 {
    type = text
    name = 4
    required = required
    label {
        value = Telefon:*
    }
}
40 = TEXTLINE
40 {
    type = text
    name = 5
    required = required
    label {
        value = Firma:*
    }
}
50 = TEXTLINE
50 {
    type = text
    name = 6
    required = required
    label {
        value = Funktion:*
    }
}
60 = TEXTLINE
60 {
    type = text
    name = 8
    required = required
    label {
        value = PLZ:*
    }
}
70 = TEXTLINE
70 {
    type = text
    name = 9
    required = required
    label {
        value = Ort:*
    }
}
80 = TEXTAREA
80 {
    cols = 40
    rows = 5
    name = 7
    required = required
    label {
        value = Ihr Anliegen:*
    }
}
100 = TEXTBLOCK
100 {
    text (
<img style="width:200px; height:auto;" src="/index.php?eID=captcha" />
 <input type="text" size=30 name="captchaResponse" value="">
    )
}
105 = SUBMIT
105 {
    name = 10
    type = submit
    value = Senden
}

但是当我尝试使用以下内容时,这不起作用,

<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\Resource;

class Word extends Resource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return parent::toArray($request);
    }
}

显示的错误是,

  

未定义的索引:word_name

但我的表格中有<?php namespace App\Http\Resources; use Illuminate\Http\Resources\Json\Resource; class Word extends Resource { /** * Transform the resource into an array. * * @param \Illuminate\Http\Request $request * @return array */ public function toArray($request) { return [ 'word' => $this->word_name ]; } } 列。如果有人帮助我,我将不胜感激。

我使用word_name方法加载资源。

showapi()

2 个答案:

答案 0 :(得分:1)

由于您正在将集合传递给Resource,因此无法直接访问Modal的属性。相反,对于资源实例,您将获得一个Collection,从而可以访问collection methods。因此,您可以将资源toArray()更改为

public function toArray($request)
{
    return $this->pluck('word_name')->keyBy(function ($item) {

        return 'word';

    });
}

答案 1 :(得分:0)

您必须将变量word_name定义为Word类的成员。