bardia
6 سال پیش توسط bardia مطرح شد
16 پاسخ

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

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


ثبت پرسش جدید
developer
تخصص : برنامه نویس
@developer 6 سال پیش مطرح شد
0
public function scopeSearch($query , $keyword)
    {
        $query->where('title', 'LIKE', '%' . $keyword . '%')
            ->orWhere('body', 'LIKE', '%' . $keyword . '%');
        return $query;
    }

bardia
تخصص : Golang/Laravel
@mrbardia72 6 سال پیش مطرح شد
-1

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


bardia
تخصص : Golang/Laravel
@mrbardia72 6 سال پیش مطرح شد
0

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


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
0

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


developer
تخصص : برنامه نویس
@developer 6 سال پیش مطرح شد
0

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

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

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

@_sj10ss


bardia
تخصص : Golang/Laravel
@mrbardia72 6 سال پیش مطرح شد
-1

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


bardia
تخصص : Golang/Laravel
@mrbardia72 6 سال پیش مطرح شد
0

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

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

bardia
تخصص : Golang/Laravel
@mrbardia72 6 سال پیش مطرح شد
-1

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


developer
تخصص : برنامه نویس
@developer 6 سال پیش آپدیت شد
2

ویو:

    <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
تخصص : Golang/Laravel
@mrbardia72 6 سال پیش مطرح شد
-1

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


bardia
تخصص : Golang/Laravel
@mrbardia72 6 سال پیش آپدیت شد
0

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

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

???????


developer
تخصص : برنامه نویس
@developer 6 سال پیش مطرح شد
0

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


bardia
تخصص : Golang/Laravel
@mrbardia72 6 سال پیش مطرح شد
-1

@alirezasafdari

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

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

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

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

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


bardia
تخصص : Golang/Laravel
@mrbardia72 6 سال پیش آپدیت شد
0

@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
تخصص : طراح سایت
@mahnazzes 6 سال پیش مطرح شد
0

salam
che tor mishe api serch benvisim
ba tashakor


bardia
تخصص : Golang/Laravel
@mrbardia72 6 سال پیش مطرح شد
1

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

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

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


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

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