업로드하려는 경우 이미지의 경로를 데이터베이스 내가 이 오류"Creating default object from empty value"

0

질문

내가 계속 이 오류"Creating default object from empty value"도 업로드에 프로필 이미지를 등록할 때 사용자,내가 무엇을 하고 싶은 업로드 이미지 경"profile-photos/PP_1637044275.jpg"를 데이터베이스,이미지의 이름을,어떤 도움이 될 것입니다 감사합니다.

이것은 컨트롤러/액션스 클래스

  class CreateNewUser implements CreatesNewUsers
 {
    use PasswordValidationRules;

  /**
 * Validate and create a newly registered user.
 *
 * @param  array  $input
 * @return \App\Models\User
 */
public function create(array $input)
{

    $request = request();

    //Handle profile photo Upload
    if ($request->hasFile('photo')) {
        // Get filename with extention 
        $filenamewithExt = $request->file('photo')->getClientOriginalName();
        // Get just filename
        $filename = pathinfo($filenamewithExt, PATHINFO_FILENAME);
        // Get just Extention
        $extention = $request->file('photo')->getClientOriginalExtension();
        // Filename to store
        $filenameToStore = $filename.'_'.time().'.'.$extention;
        // Upload Image
        $path = $request->file('photo')->storeAs('profile-photos', 
        $filenameToStore);

        $user = new User;
        $user->profile_photo_path = $path;
       

    }

    
 
    if ($request->hasFile('photo')) {
        
        $user->profile_photo_path = $path;
  
       
    }

이것은 보기

     <!-- PROFILE INFO -->
    <form method="POST" action="{{ route('register') }}" enctype="multipart/form-data">
    @csrf
    <div x-show.transition.in="step === 1">
    <div class="mb-5 text-center">
    <div class="mx-auto w-32 h-32 mb-2 border rounded-full relative bg-gray-100 mb-4 
    shadow-inset">
      <img id="image" class="object-cover w-full h-32 rounded-full" :src="image" />
    </div>

    <label
      for="fileInput"
      type="button"
      class="cursor-pointer inine-flex justify-between items-center focus:outline-none 
      border py-2 px-4 rounded-lg shadow-sm text-left text-gray-600 bg-white hover:bg- 
      gray-100 font-medium"
    >
      <svg xmlns="http://www.w3.org/2000/svg" class="inline-flex flex-shrink-0 w-6 h-6 - 
       mt-1 mr-1" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" 
        stroke-linecap="round" stroke-linejoin="round">
        <rect x="0" y="0" width="24" height="24" stroke="none"></rect>
        <path d="M5 7h1a2 2 0 0 0 2 -2a1 1 0 0 1 1 -1h6a1 1 0 0 1 1 1a2 2 0 0 0 2 2h1a2 
      2 0 0 1 2 2v9a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-9a2 2 0 0 1 2 -2" />
        <circle cx="12" cy="13" r="3" />
      </svg>
      Browse Photo
    </label>

    <div class="mx-auto w-48 text-gray-500 text-xs text-center mt-1">Click to add 
    profile picture</div>

    <input name="photo" id="fileInput" accept="image/*" class="hidden" type="file" 
    @change="let file = document.getElementById('fileInput').files[0];
      var reader = new FileReader();
      reader.onload = (e) => image = e.target.result;
      reader.readAsDataURL(file);">
   </div>
2

최고의 응답

1

귀하의 오류에 의해 발생할 수 있습이 줄:

   if ($request->hasFile('photo')) {
     
        $user->profile_photo_path = $path;
      
    }

을 제거하려고로 이것을 당신은 이미 저장 profile_photo_path 이전되고 있는 것$사용자는 변수가 정의되지 않을 수 있습니다 여기에.

편집:을 저장하는 경우에는 이미지를 공개할 수는 있습니다 그냥 이렇:

$user->profile_photo_path = 'profile-photos/'.$filenameToStore;

다음 표시에 있는 이미지의 블레이드 보기

<img src="{{asset($user->profile_photo_path)}}">
2021-11-17 08:32:29

대단히 감사합니다,정말 감사합니다.
Adam

확실한 것이 아니다. 습니다!
fufubrocat
0

이것은 어떻게 해결된 문제는 이미지를 저장/프로필 사진 데이터베이스와 같은 경로로-프로필 사진/이미지-이름이지만 이미지/파일

   if ($request->hasFile('photo')) {
    // Get filename with extention 
    $ImageNameWithExt = $request->file('photo')->getClientOriginalName();
    // Get just filename
    $ImageName = pathinfo($ImageNameWithExt, PATHINFO_FILENAME);
    // Get just Extention
    $Extentions = $request->file('photo')->getClientOriginalExtension();
    // Filename to store
    $filenameToStore = $ImageName.'_'.time().'.'.$Extentions;
    // Upload Image
    $paths = $request->file('photo')->storeAs('public/profile-photos', 
    $filenameToStore);

    $path = 'profile-photos';
    $user = new User;
    $user->profile_photo_path =  $path . '/' . $filenameToStore;


}

        $imageWithPath = $user->profile_photo_path;

        $user =  User::create([
        'profile_photo_path'=> $imageWithPath,
        'username'          => $input['username'],
2021-11-17 04:08:15

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................