Как получить данные из уведомлений? [Ошибка получения данных] laravel 5.8

Вот один из них, который отделяет нумерованный вопрос именования от проверки файловой системы:

/// <summary>
/// Finds the next unused unique (numbered) filename.
/// </summary>
/// <param name="fileName">Name of the file.</param>
/// <param name="inUse">Function that will determine if the name is already in use</param>
/// <returns>The original filename if it wasn't already used, or the filename with " (n)"
/// added to the name if the original filename is already in use.</returns>
private static string NextUniqueFilename(string fileName, Func<string, bool> inUse)
{
    if (!inUse(fileName))
    {
        // this filename has not been seen before, return it unmodified
        return fileName;
    }
    // this filename is already in use, add " (n)" to the end
    var name = Path.GetFileNameWithoutExtension(fileName);
    var extension = Path.GetExtension(fileName);
    if (name == null)
    {
        throw new Exception("File name without extension returned null.");
    }
    const int max = 9999;
    for (var i = 1; i < max; i++)
    {
        var nextUniqueFilename = string.Format("{0} ({1}){2}", name, i, extension);
        if (!inUse(nextUniqueFilename))
        {
            return nextUniqueFilename;
        }
    }
    throw new Exception(string.Format("Too many files by this name. Limit: {0}", max));
}

И вот как вы могли бы это назвать, если используете файловую систему

var safeName = NextUniqueFilename(filename, f => File.Exists(Path.Combine(folder, f)));
1
задан Jignesh Joisar 19 March 2019 в 14:04
поделиться

1 ответ

data - это строка, содержащая формат json. Если вы не сообщите PHP эту информацию, PHP просто интерпретирует ее как строку, у которой нет ключей.

Итак, вам придется проанализировать json перед использованием ключей:

$data = json_decode($notification->data);
echo $data->thread->id;

Обновление: Я полагаю, вы получаете эти значения с помощью Eloquent? Если это так, вы можете позволить eloquent для вас разобрать эти строки json .

Просто определите свойство $casts в вашей модели и добавьте свойство.

protected $casts = [
    'data' => 'array',
];

Теперь вы можете использовать свойство напрямую: $notification->data['thread']['id']

0
ответ дан Jerodev 19 March 2019 в 14:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: