Создайте текстовый файл с помощью Laravel и PHP

Я хочу задать вопрос. Я новичок в структуре laravel. Я хочу создать текстовый файл из данных формы ввода пользователя, используя фреймворк Laravel. в то же время я хочу сохранить эти данные в своей базе данных.

Мне удалось сохранить в базе данных. но я не могу создать из этого файл .txt.

Я пытался получить данные из базы данных, но произошла ошибка. и я просто пытаюсь получить данные из формы ввода, это тоже ошибка.

Я пробовал...

<?php

    $nama     = $_POST['name'];
    $email    = $_POST['email'];
    $dob      = $_POST['date'];
    $phone    = $_POST['phone'];
    $gender   = $_POST['gender'];
    $address  = $_POST['addreess'];
    $date     = date('dmY');
    $jam      = data('his');

    $data = "$nama,$email,$dob,$phone,$gender,$address";
    $file = "$nama"-"$date$jam";
    $namafile = "$file.txt";  

    $fh = fopen($namafile,"w");  
    fwrite($fh,$data);

    fclose($file);  

    echo "<h2>Hasil Penyimpanan Data</h2>";  
    echo "<hr>";  
    echo "Hasil : <a href='$namafile'> $namafile </a>";

Я использую его в своем index.php, так как я могу напрямую получать данные из формы ввода, а затем сохранять их как файл .txt.

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

public function store(Request $request)
{
    $employee = new Employee();
    $employee->nama = $request->get('name');
    $employee->email = $request->get('email');
    $employee->dob = $request->get('date');
    $employee->phone = $request->get('phone');
    $employee->gender = $request->get('gender');
    $employee->addreess = $request->get('addreess');
    $employee->save();

    return redirect('employees')->with('success','Selamat, Data berhasil di tambahkan !');
}

Как я могу сохранить входные данные в базе данных и в то же время как я могу сохранить данные в текстовый файл?

Спасибо за вашу помощь. :)

Сделайте одно, затем сделайте второе, тогда вернет перенаправление. См. laravel.com/docs/5.7/filesystem#storing-files, чтобы узнать о способе работы с файлами в Laravel. Если вам нужна дополнительная помощь, дайте нам знать, что означает «но ошибка», например сообщение об ошибке и строки кода, которые ее вызывают.

ceejayoz 22.10.2018 20:40

Ваше имя файла не будет правильным, поскольку это не то, как вы объединяете. Также может быть лучше указать, в какой каталог вы хотите поместить его, будь то хранилище или общедоступный.

aynber 22.10.2018 20:41

на самом деле я не знаю, где мне разместить синтаксис, который я могу сохранить в текстовом файле. Я использую этот код в php native, а в Codeogniter работает. когда я использую laravel, я не понимаю, как я могу сохранить данные в текстовый файл @ceejayoz

Muhammad Sholehhudin 22.10.2018 20:48

@MuhammadSholehhudin Сделайте это после того, как вы ->save() запись сотрудника. Но зачем вы вообще создаете файл? У вас уже есть все в базе данных.

ceejayoz 22.10.2018 21:06

могу ли я сохранить эту форму в текстовом файле? так что это требование моего начальника .. я должен сохранить информационную форму в текстовый файл .. @ceejayoz

Muhammad Sholehhudin 22.10.2018 21:14

Да, ты можешь. Я связал вас с документами о том, как создать файл и сохранить в нем текст. (Это по-прежнему глупое требование; какой смысл хранить его как в .txt, так и в базе данных?)

ceejayoz 22.10.2018 21:16

Я попытался поместить это ниже -> save (), но это все еще ошибка. он говорит: «fclose () ожидает, что параметр 1 будет ресурсом, заданная строка». что я должен изменить, чтобы он был строкой .. хмм да ты знаешь, bos всегда верен в любой ситуации .. @ceejayoz

Muhammad Sholehhudin 22.10.2018 21:32

Вам не следует использовать такие функции, как fclose. Я связал вас с документацией по файловым функциям Laravel.

ceejayoz 22.10.2018 21:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
8
9 438
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В Laravel используйте put () фасада Storage.

use Illuminate\Support\Facades\Storage;

Storage::disk('local')->put('file.txt', 'Your content here');

// 'file.txt' // yo can use your file name here.
// 'Your content here' // you can specify your content here

Это будет храниться в storage/app/.

так что ваш контроллер будет выглядеть так,

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use App\Employee;


class HomeController extends Controller
{

    public function store(Request $request)
    {
      Storage::disk('local')->put('file.txt', 'Your content here');

      $employee = new Employee();
      $employee->nama = $request->get('name');
      $employee->email = $request->get('email');
      $employee->dob = $request->get('date');
      $employee->phone = $request->get('phone');
      $employee->gender = $request->get('gender');
      $employee->addreess = $request->get('addreess');
      $employee->save();

      return redirect('employees')->with('success','Selamat, Data berhasil di tambahkan !');
    }

}

где взять этот синтаксис? в контроллере или маршруте? или что-нибудь еще? Я все еще новичок в ларавеле .. @Sobin

Muhammad Sholehhudin 22.10.2018 21:11

@MuhammadSholehhudin не беспокойтесь, я могу вам помочь, вы можете добавить этот код в свой контроллер, но это будет идти вверху. Используйте Illuminate \ Support \ Facades \ Storage;

Sobin Augustine 22.10.2018 21:28

Большое спасибо ... если вы можете посоветовать мне прояснить это упражнение. затем, где я добавляю Storage :: disk ('local') -> put ('file.txt', 'Your content here'); ? ниже моего метода Storage ()? или мне нужно создать новый метод и написать в нем? @SobinAugustine

Muhammad Sholehhudin 22.10.2018 21:37

Нет, вы можете добавить оба метода в один и тот же метод store (), если это должно происходить в одном процессе.

Sobin Augustine 22.10.2018 21:39

Итак, этот код все еще работает или нет? о том, как я могу создать эти данные в текстовом файле? я имею в виду первый код, которым я делюсь выше @SobinAugustine

Muhammad Sholehhudin 22.10.2018 21:40

Шаг 1: выполните Storage :: disk ('local') -> put ('file.txt', 'Your content here');

Sobin Augustine 22.10.2018 21:44

после проверки шага 1 выполните шаг 2: добавьте свою логику к имени файла и его содержимому

Sobin Augustine 22.10.2018 21:44

Шаг 3: реализуйте красноречивое сохранение

Sobin Augustine 22.10.2018 21:45

Итак, моя логика относительно имени файла и содержимого все еще находится в Контроллере? с методом хранения? @SobinAugustine

Muhammad Sholehhudin 22.10.2018 21:57

Эй, вы знаете, мне просто удалось создать файл ... но это только один раз ... затем я снова заполняю форму, текстовый файл не создается ...

Muhammad Sholehhudin 22.10.2018 21:58

@MuhammadSholehhudin да, с методом store ()

Sobin Augustine 22.10.2018 21:58

@MuhammadSholehhudin это потому, что он снова перезаписывает файл, поэтому дайте уникальные имена (включая временную метку в логику имени файла и т.д.), Это решит проблему.

Sobin Augustine 22.10.2018 22:00

Да, вы были правы ... теперь это работа для меня ... я могу добавить, если имя входа другое или после обновления ... хе, кстати, большое вам спасибо ... но есть одна функция, которая еще не работает .. [$ дата = дата ('дмГ'); $ jam = data ('his');] я не могу выполнить этот код в своем контроллере, потому что контроллер не расширяет загрузочный datepicker .. как я могу получить значение времени сейчас? @SobinAugustine

Muhammad Sholehhudin 22.10.2018 22:11

Другие вопросы по теме