【问题标题】:Make a Text File Using Laravel and PHP使用 Laravel 和 PHP 制作文本文件
【发布时间】:2018-10-22 18:38:36
【问题描述】:

我想问一个问题。我是 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 处理文件的方式。如果您需要更多帮助,请告诉我们“但错误”的含义,例如错误消息和导致错误的代码行。
  • 您的文件名不正确,因为这不是您连接的方式。最好指定要将其放置在哪个目录中,无论是存储目录还是公共目录。
  • 实际上我不知道我必须把可以保存到 txt 文件的语法放在哪里。我在 php native 和 Codeogniter 中使用该代码是有效的。当我使用 laravel 时,我很困惑如何将数据保存到文本文件 @ceejayoz
  • @MuhammadSholehhudin 在您 -&gt;save() 员工记录之后执行此操作。但是,您为什么还要创建文件?您已经拥有数据库中的所有内容。
  • 我可以把这个表格保存到txt文件吗?所以这是我老板的要求。我必须将信息表保存到文本文件中。@ceejayoz

标签: php laravel frameworks


【解决方案1】:

在 Laravel 中,使用 Storage 门面的 put()。

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 !');
    }

}

【讨论】:

  • 我应该在哪里使用这种语法?在控制器或路线中?还是别的?我还是新手 laravel .. @Sobin
  • @MuhammadSholehhudin 不用担心,我可以帮你,你可以在你的控制器中添加这个代码,但这将在顶部使用 Illuminate\Support\Facades\Storage;
  • 好的,非常感谢......如果你能指导我完成这个练习。然后我在哪里添加 Storage::disk('local')->put('file.txt', 'Your content here'); ?在我的 Storage() 方法下面?还是我必须创建一个新方法并写进去? @SobinAugustine
  • 不,如果必须在同一个进程中发生,您可以在同一个方法 store() 中添加两者。
  • 那么,这段代码是否仍然有效?关于我如何将这些数据创建为 txt 文件?我的意思是我在@SobinAugustine 上面分享的第一个代码
猜你喜欢
  • 1970-01-01
  • 2018-10-04
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多