راکت

ساخت یک سرچ ساده با لاراول

16 پاسخ

سلام میخوام یه سرچ ساده با لاراول دورس کنم
چندتا مطالب توی سایت های خارجی دیدم اما اجرا نمیشدن
کسی سرچ ساده بلده یه نمونه کد بزار اینجا
ممنون

bardia
bardia
@mrbardia72
ثبت پرسش جدید

پاسخ‌ها

16
developer
developer
@developer

تخصص: برنامه نویس

public function scopeSearch($query , $keyword)
    {
        $query->where('title', 'LIKE', '%' . $keyword . '%')
            ->orWhere('body', 'LIKE', '%' . $keyword . '%');
        return $query;
    }
bardia
bardia
@mrbardia72

تخصص: Golang/Laravel

@alirezasafdari
خصوصیت اکشن فرم و روت رو باید چطور بنویسم براش؟

شاید پاسخ شما همین‌جا باشد

bardia
bardia
@mrbardia72

تخصص: Golang/Laravel

@alirezasafdari
متغییر ی که ارسال داره میشه چرا دریافت نداره مثلن input یا get

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

@_sj10ss
به scope اول تابع دقت کنید.
این متد باید در یک مدل لاراول قرار بگیره.. کارهایی رو که می‌خواهید با input و get انجام بدید لاراول برای شما انجام میده بعلاوه خیلی کارهای دیگه

developer
developer
@developer

تخصص: برنامه نویس

شما همین چیزی که فرستادم رو بذارید توی مدل تون، بعد توی کنترلر اینطوری بنویسید:

public function search(){
        $key = request('keyword');
        $lessons = Lesson::search($key)->latest()->get();
        return view('front.section.search', compact('lessons','key'));
    }

توی ویو هم کلمه کلیدی رو توی یک فرم به صورت get ارسال کن

@_sj10ss

bardia
bardia
@mrbardia72

تخصص: Golang/Laravel

@ali.bayat
میشه بیشتر توضیح بدید
خیلی سطحی بود

bardia
bardia
@mrbardia72

تخصص: Golang/Laravel

اینو توی مدل بزرام؟
@alirezasafdari

public function scopeSearch($query , $keyword)
    {
        $query->where('title', 'LIKE', '%' . $keyword . '%')
            ->orWhere('body', 'LIKE', '%' . $keyword . '%');
        return $query;
    }
bardia
bardia
@mrbardia72

تخصص: Golang/Laravel

@alirezasafdari
میشه سوروس کد کاملی دارید برام بفرستید
یه خورده کامل تر توضیح میدید

developer
developer
@developer

تخصص: برنامه نویس

ویو:

    <form action="{{route('search')}}" class="w-100" method="get">
                <div class="input-group">
                    <input name="keyword" type="text" class="form-control"
                           placeholder="جستجو در پرسش ها، دوره ها، ویکی ها، وکلا و ...">
                    <div class="input-group-prepend d-none d-lg-flex"
                         style="border-top-right-radius: 0px; border-bottom-right-radius: 0px ">
                        <button type="submit" class="input-group-text text-white"
                                style="border: 0px; background-color:rgb(0,174,234);">جستجو
                        </button>
                    </div>
                </div>
            </form>

روت:

    Route::get('/search', 'searchController@search')->name('search');

کنترلر:

    public function search(){
            $key = request('keyword');
            $lessons = Lesson::search($key)->latest()->get();
            return view('front.section.search', compact('lessons','key'));
        }

مدل:

    public function scopeSearch($query , $keyword)
        {
            $query->where('title', 'LIKE', '%' . $keyword . '%')
                ->orWhere('body', 'LIKE', '%' . $keyword . '%');
            return $query;
        }

یک خرده به کد ها دقت کنی متوجه میشید، چیز خاصی نداره

@_sj10ss

bardia
bardia
@mrbardia72

تخصص: Golang/Laravel

@alirezasafdari
خروجی چیزی بهم نشون نمیده اصلان
مشکل از کجاست؟

bardia
bardia
@mrbardia72

تخصص: Golang/Laravel

@alirezasafdari
در حالی که در دستور زیر key رو چاپ می کنه اما lessons رو چاپ نمی کنه

    public function search(){
            $key = request('keyword');
            $lessons = Lesson::search($key)->latest()->get();
            return view('ly.show', compact('lessons','key'));
        }

???????

developer
developer
@developer

تخصص: برنامه نویس

سرچ رو بردارید ببینید خود درسها رو بر میگردونه یا نه؟
lesson یک بخش سایت خودم هست، شما باید مدلی که میخواین توش سرچ بشه رو بذارید،
در ضمن اگه چیزی چاپ نمیکنه شاید بدلیل اینه که هیچ نتیجه ای پیدا نکرده

bardia
bardia
@mrbardia72

تخصص: Golang/Laravel

@alirezasafdari

نه ببخشید اصلاح شده قسمت کد بالا به این صورت هست lesson نداره
اما باز اجرا نمیشه

$lessons = Movie::search($key)->latest()->get();

در ضمن من دارم از پایگاه داده neo4j استفاده می کنم که برای واکشی تو مستنداتش گفته باید به صورت زیر واکشی بشه

$tagline=DB::table('Movie')->collect('tagline');

یعنی به صورت collect
حالا میخوامبه کویر فوق collect اضافه کنم باید چیکار کنم

bardia
bardia
@mrbardia72

تخصص: Golang/Laravel

@alirezasafdari

من کنترلر رو به صورت زیر نوشتم
باید عمل کنه اما خروجی برنمی گردونه

  public function search() {
    $key = request('keyword');
    $lessons = Movie::find($key);

    $lessons1=Movie::Where('released', '=',$key)->collect('title');
      return view('ly.show',compact('lessons','key','lessons1')) ;
  }

در واقع id رو میزنم برمی گردونه
اما سال رو میزنم بر نمی گردونه

mahnaz
mahnaz
@mahnazzes

تخصص: طراح سایت

salam
che tor mishe api serch benvisim
ba tashakor

bardia
bardia
@mrbardia72

تخصص: Golang/Laravel

@mahnazzes
با د ادن پارامتر در url می تونید سرچ داشته باشید
مثلن به صورت زیر

www.ariport.com/api/v1/flights/A2WE0FG

اون کد آخر برای جست و جوی مشخصات پروازی هست
به این صورت با دادن پارامتر میشه جست و جو د اشت

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام