Как создать массив из одного поля ввода формы с помощью php на octobercms?

У меня есть поле ввода под названием «str_local_og_fb_admins», и я хочу, чтобы в этом поле ввода могло быть более одного администратора, например, если я ввожу форму «1234,5678», я хочу, чтобы возврат был:

<meta property="fb:admins" content="1234">
<meta property="fb:admins" content="5678">

Я могу создать только один тег, например, если я помещу его в свою форму «1234,5678», он вернет:

<meta property="fb:admins" content="1234,5678">

Я работаю над плагином octobercms для обработки открытых тегов графа, и это единственная проблема, с которой я столкнулся, вот поле ввода, которое я создал (оно создано в файле plugin.php):

if (!$widget->model instanceof \Cms\Classes\Page) return;

    $widget->addFields([
    'settings[str_local_og_fb_admins]' => [
                            'label' => 'Facebook Admins',
                            'type'  => 'text',
                            'placeholder' => 'Example: 1234',
                            'tab'   => 'Facebook Tags',
                          ]],  'primary');

Я вывожу теги, используя созданный мной компонент, вот как выглядит мой default.htm этого компонента:

{% if this.page.str_local_og_fb_admins %}
    <meta property="fb:admins" content="{{this.page.str_local_og_fb_admins}}">
{% endif %}

Я также установил в базе данных поле как строку. (Мой плагин является бэкэнд-плагином, все мои формы появляются только на бэкэнд-страницах)


person kraven2g    schedule 17.05.2016    source источник
comment
вопрос выглядит как беспорядок для меня ... не могли бы вы отредактировать его, чтобы было ясно, что вы хотите и каковы входные данные? Три раза перечитал, и так и не понял в чем проблема и чего нужно добиться.   -  person Farside    schedule 17.05.2016
comment
У меня есть одно поле формы, и если я ввожу туда 123 321, оно дает мне значение 123 321, но я хочу, чтобы оно давало мне 123 и 321 отдельно, в основном я хочу разбить строку на массив   -  person kraven2g    schedule 17.05.2016
comment
найдите ответ на свой комментарий в мой ответ   -  person Farside    schedule 17.05.2016


Ответы (1)


У меня есть одно поле формы, и если я ввожу туда «123 321», оно дает мне значение «123 321», но я хочу, чтобы оно давало мне 123 и 321 отдельно, в основном я хочу разделить строку на массив

Ответ тривиален, используйте для этого функцию explode в PHP:

$str = "123,321";
$pieces = explode(",", $str);
echo $pieces[0]; // "123"
echo $pieces[1]; // "321"
person Farside    schedule 17.05.2016
comment
Спасибо, мне пришлось внести небольшие изменения в код, чтобы он работал, но вы мне очень помогли. - person kraven2g; 17.05.2016
comment
@ kraven2g это был ответ на твой вопрос, или ты спросил что-то другое? не стесняйтесь принять ответ, если это было именно то, о чем вы просили, потому что первоначальный вопрос был несколько запутанным. - person Farside; 17.05.2016
comment
это не 100% того, что мне нужно, но допустим, что ваш ответ решил около 70% моей проблемы, мой код теперь работает на 100%, спасибо. - person kraven2g; 18.05.2016
comment
ха-ха, @kraven2g, ты так точен в процентах... в любом случае, хорошо, что у тебя есть решение. Мне кажется, вопрос решен в любом случае. - person Farside; 18.05.2016