Для чего у вас есть параметр $ image? Это не указано в вашем axios.post.
public function store(Request $request)
{
$category = new Category();
$input = $this->safeInput($request);
$category->fill($input);
dd($this->postImage($request));
$slug = $category->slug($category->title);
$category->slug = $slug;
if($request->has('active'))
{
$category->active = 1;
}else{
$category->active = 0;
}
$category_order = $category->order_number();
$category->order = $category_order;
$category->save();
}
public function postImage($request)
{
if($request->hasFile('image'))
{
$names = [];
foreach($request->file('image') as $image)
{
$destinationPath = 'product_images/category/';
$filename = $image->getClientOriginalName();
$image->move($destinationPath, $filename);
array_push($names, $filename);
}
$image = json_encode($names);
return $image;
}
}
Лучший ответ - то, если Вы ничего не знаете до живой, можно ли переместить все настройки в web.config? Это позволит конфигурацию вплоть до последней минуты. Ниже некоторый код для дампа в web.config файл. Я подверг бы сомнению относительно того, почему у Вас нет доступа к этой информации хотя
<system.net>
<mailSettings>
<smtp from="you@yourdomain.com">
<network host="SMTP SERVER ADDRESS" port="25"
userName="USERNAME" password="PASSWORD">
</smtp>
</mailSettings>
</system.net>
Добавьте это к своему web.config (ссылка MSDN здесь):
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="jdoe@example.com">
<network host="localhost" port="25" />
</smtp>
</mailSettings>
</system.net>
Используя SmtpClient, не указывая параметры конфигурации будет использовать значения от web.config:
MailMessage msg = new MailMessage(...);
// build message contents
SmtpClient client = new SmtpClient();
client.Send(msg);
Как альтернатива: Если Вы не хотите полагаться на конфигурацию сервера, и сделать это программно Вы могли бы всегда делать это:
MailMessage mail = new MailMessage() {
To = "someone@somewhere",
From = "someone@somewhere",
Subject = "My Subject",
Body = "My message"
};
SmtpClient client = new SmtpClient("SMTP Server Address");
// Naturally you change the "SMTP Server Address" to the
// actual SMTP server address
client.Send(mail);
Но я предлагаю, чтобы Вы засунули его в web.config файл (который может быть настроен через веб-Инструмент конфигурирования ASP.NET также).
Если Ваша конфигурация SMTP корректна, просто сделайте это:
MailMessage mail = new MailMessage();
mail.To = "To";
mail.From = "From";
mail.Subject = "Subject";
mail.Body = "Body";
SmtpMail.SmtpServer = "localhost";
SmtpMail.Send(mail);
Я ответил на вопрос, подобный этому не к давно. Можно просмотреть его здесь. Используя papercut, можно протестировать приложение, не зная или с помощью фактического производства smtp сервер.
Затем во время тестирования можно просто установить хост локальной машины, которая выполняет papercut в конфигурации приложения/сети. Поэтому это может быть изменено однажды перемещающийся в производство.
Papercut покажет Вам электронные письма, которые были посланы и также содержание.