是否可以自定义laravel雄辩的morphToMany的name_type列?

时间:2018-04-08 08:45:59

标签: laravel laravel-5 eloquent

我们可以自定义morphMany $ type

morphMany

public void setHighLightedText(EditText editText, String textToHighlight) {
    String tvt = editText.getText().toString();
    int ofe = tvt.indexOf(textToHighlight, 0);
    Spannable WordtoSpan = new SpannableString(editText.getText());

    for (int ofs = 0; ofs < tvt.length() && ofe != -1; ofs = ofe + 1) {


        ofe = tvt.indexOf(textToHighlight, ofs);
        if (ofe == -1)
            break;
        else {
            WordtoSpan.setSpan(new BackgroundColorSpan(0xFFFFFF00), ofe, ofe + textToHighlight.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
            editText.setText(WordtoSpan, TextView.BufferType.SPANNABLE);
        }
    }
}

使用官方doc示例。我可以通过使用 commentable_object

传递第三个参数$ type,将 commentable_type 更改为数据库架构中的 commentable_object
public function morphMany($related, $name, $type = null, $id = null, $localKey = null)

但是, morphToMany 函数没有此参数。

以下是morphToMany的源代码

comments
id - integer
body - text
commentable_id - integer
commentable_type - string

总是使用

  

$ this-&gt; morphType = $ name .'_ type';

创建morphType。为什么morphToMany不允许更改类型列的名称?

1 个答案:

答案 0 :(得分:3)

当前不可能。 A similar question was asked中的Laravel github issues,其结论是无法自定义。

如果您希望在将来的Laravel版本中看到此更改,建议您在Laravel Ideas存储库中提交问题。

或者,您可以派发Laravel存储库并自定义源代码以满足您的需求。