在Laravel中如何将内容写入.txt文件?

8

我希望从数据库中获取activationCode的值,然后将其存储到一个.txt文件中。

这是我到目前为止尝试过的内容。

请帮忙!

registerController.php

  protected function create(array $data)
    {
        $user = User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'phone' => $data['phone'],
            'password' => bcrypt($data['password']),
            'activationCode' => rand(1000,9999),
        ]);


     }


     public function put() {

         $user = User::where('is_active', 0)->get();

          $file = Storage::put( 'myfile.txt', $user);

   }

请勿发布无效的代码行。 - Alexxus
你是什么意思? - Shamima Saleem
你注释掉的代码,它一文不值。 - Alexxus
感谢您展示了您的尝试,但您遇到了什么问题?我猜$user是一个对象,所以如果您想将它放入文本文件中,您需要从要存储的用户数据位创建一个字符串,并将该字符串存储起来。它应该是特定格式的吗?例如JSON?还是应该是人类容易阅读的东西?不清楚您实际想要的输出是什么。据我所知,您不能只是将一个对象发送给::put方法,至少不能为了创建一个文本文件。它可能不知道该怎么做。 - ADyson
我知道如何从数据库中获取数据,但是教授让我将其写入文件。谢谢您的回复。 - Shamima Saleem
显示剩余3条评论
1个回答

13

你尝试将对象转换为数组或字符串了吗? 确保你有写入目标文件夹的权限。 使用这个来帮助你调试

public function put() {
   try {
       $attemptToWriteObject = User::where('is_active', 0)->get();
       $attemptToWriteArray = User::where('is_active', 0)->get()->toArray();
       $attemptToWriteText = "Hi";
   
       Storage::put('attempt1.txt', $attemptToWriteObject);
       Storage::put('attempt2.txt', $attemptToWriteArray);
       Storage::put('attempt3.txt', $attemptToWriteText);
  } catch (\Exception $e) {
       dd($e);
  }
}

谢谢abr,你太棒了。如何循环只读取特定字段。Storage::disk('local')->get('myfile.txt'); 这将返回整个内容。 - Shamima Saleem
你需要反转这个过程。读取文件并将其解析为对象集合,然后进行读取。或者尝试另一种技术,由你决定如何读取它 :P - abr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接