我们可以自定义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_objectpublic 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不允许更改类型列的名称?
答案 0 :(得分:3)
当前不可能。 A similar question was asked中的Laravel github issues,其结论是无法自定义。
如果您希望在将来的Laravel版本中看到此更改,建议您在Laravel Ideas存储库中提交问题。
或者,您可以派发Laravel存储库并自定义源代码以满足您的需求。